Докер: ящик, которому всё равно, что внутри
Слово: докер, Docker, контейнер · где услышишь: на стенде команды и там, где проверяют решения
«Истории слов» — рубрика буткемпа Hammerhall. Наша команда строит учебную платформу и сервисы вокруг неё, а здесь рассказывает, откуда взялись слова, на которых говорит.
Ньюарк, порт напротив Нью-Йорка, 26 апреля 1956 года. Кран ставит на палубу судна Ideal X — переделанного танкера — алюминиевый кузов грузовика. Через семь минут — следующий. Всего 58 кузовов, и судно загружено меньше чем за восемь часов. Обычный грузовой корабль в те годы грузили несколько дней, а то и дольше.
Через пять дней Ideal X приходит в Хьюстон. Там 58 грузовиков забирают ящики и развозят по адресам. Это те же ящики, что грузили в Ньюарке.
Затеял это Малком Маклин (Malcom McLean) — автоперевозчик из Северной Каролины. В 1955 году он купил пароходную компанию, чтобы возить на её судах кузова грузовиков прямо с товаром. Его бухгалтеры потом посчитали: погрузка тонны груза на Ideal X обошлась в 15,8 цента. А на обычное судно тонну грузили в среднем за 5,83 доллара.
Кто за это заплатил#
Обычное судно грузили руками: каждый мешок и каждый ящик поднять, перенести, уложить. В начале 1950-х в Нью-Йорке и в Лондоне, двух крупнейших портах мира, было больше чем по 50 000 зарегистрированных портовых рабочих.
Контейнеру столько людей не нужно. Смитсоновский музей американской истории пишет прямо: портовых грузчиков ждали огромные потери работы. Профсоюзы протестовали и требовали возмещения.
В 1960 году на Западном побережье США профсоюз докеров и судовладельцы подписали соглашение: компании ставят машины, а докеры получают 35-часовую рабочую неделю и пенсионный фонд на 29 млн долларов, чтобы уходить на пенсию раньше. Одни считают, что лучшего добиться было нельзя, другие — что профсоюз отдал слишком много. По данным исследователей, с 1960-го по 1980-й число зарегистрированных портовых рабочих там упало больше чем на треть — с 14 500 до 8 400.
По-английски, точнее по-британски, портовый грузчик — docker, тот, кто работает в доках. По словарю Merriam-Webster, в этом значении слово известно с 1887 года. В русский оно пришло давно и без изменений: в толковом словаре Ушакова 1930-х годов «докер» уже есть — «рабочий на доках и судостроительных верфях».
Пять минут в Санта-Кларе#
Прошло больше полувека. 15 марта 2013 года, конференция программистов PyCon в Санта-Кларе, Калифорния. Соломон Хайкс (Solomon Hykes) из компании dotCloud выходит на сцену с пятиминутным докладом «Будущее контейнеров Linux» — и впервые показывает публике Docker. Осенью того же года компания возьмёт имя своей программы: dotCloud станет Docker.
Какую беду решал Docker, в компании потом описали одной фразой: доставить код на сервер трудно. По-английски здесь стоит shipping — доставка, слово от ship, корабль. Программа зависит от того, что установлено на машине, и на чужой может не заработать. Docker упаковывает программу вместе со всем, что ей нужно, в контейнер, и такой контейнер работает одинаково на ноутбуке программиста, в дата-центре и в облаке.
Сравнение с морем есть уже в описании самой первой версии Docker. Морской контейнер, сказано там, ставят в штабель одинаково, что бы в нём ни лежало, — вьетнамский растворимый кофе или запчасти для Maserati. А до контейнеров, по тому же описанию, мешок кофе по дороге таскали, волокли, роняли, катали и складывали десять разных людей в десяти разных местах.
Ужасное название#
Легко подумать, что Хайкс назвал программу в честь докеров. Почти так, но назвал не он.
По рассказу журнала Forbes, имя придумал первый инженер, которого дали Хайксу в помощь, когда Docker был ещё побочным проектом. Инженер думал о докерах и подбирал слово в пару к «контейнерам». А сам Хайкс признался журналу: «Я думал, это ужасное название и что мы поменяем его до выпуска». Не поменяли.
На логотипе Docker — кит, который везёт на спине штабель контейнеров. Его выбрали на конкурсе дизайнеров. Как вспоминал потом сотрудник Docker, среди других кандидатов были жираф и жёлудь, а кит победил с большим отрывом.
Имя ему в 2013 году выбрали пользователи голосованием: Moby Dock. Если ты читал выпуск 3, то узнал в нём «Моби Дика» Германа Мелвилла (Herman Melville). В посте об итогах голосования компания игру слов не объясняет — она и так слышна.
А ирония этой истории вот в чём. Контейнер оставил без работы тысячи докеров, а теперь «докером» зовут программу, которая только и делает, что грузит контейнеры.
Контейнеры у нас#
Контейнеры у нас — обычное дело. Решение ученика проверяют на сервере, в отдельном контейнере. А на стенде команды — там, где она пробует новые версии своих программ, — в контейнерах работает CRM, программа для менеджеров буткемпа.
И каждый раз, когда программа запускается на чужой машине так же, как на своей, где-то за этим стоит идея 1956 года: не перекладывать груз, а возить ящик целиком.
Контейнеру всё равно, что внутри, — кофе, запчасти или решение ученика. В этом его сила.
Источники
- Marc Levinson, «The Box That Shrank the World» — автор книги о контейнере: Ideal X, 15,8 цента и докеры.
- Smithsonian, «Transforming the Waterfront» — музей: Маклин, несколько дней на погрузку обычного судна, потери работы в портах, соглашение 1960 года.
- Docker Blog, «Docker: Nine Years YOUNG», 2022 — 15 марта 2013 года, первый показ на PyCon.
- README первой версии Docker, 2013 — «стандартный контейнер», кофе и запчасти для Maserati.
- Forbes, «Meet Docker's Solomon Hykes», 2015 — кто на самом деле придумал имя Docker.
- Docker Blog, «Call me Moby Dock», 2013 — как кита назвали голосованием.