слов.арь · bisovka

объясни container-docker --простыми-словами

Иллюстрация к термину «Контейнер / Docker»

Контейнер / Docker

Коротко«Но у меня на компьютере работает» — самая старая отмазка в софте.

«Но у меня на компьютере работает» — самая старая отмазка в софте. Контейнер наконец-то ее убил.

Вот какую проблему он убивает. Софт никогда не работает в вакууме. Ему нужна конкретная среда вокруг: правильная версия языка, правильные вспомогательные куски, конкретные настройки. На твоем ноутбуке одна среда. На живом сервере чуть другая. На машине коллеги третья. Поэтому код, который идеально работает у тебя, где-то еще падает лицом в пол не потому, что изменился код, а потому что кухня вокруг другая.

Фудтрак. Обычная ресторанная кухня, та самая кухня при зале из прошлых примеров, прикручена к одному зданию. Перенеси повара в другое здание — духовки незнакомые, газовая линия другая, ничего не лежит там, куда тянется рука. Фудтрак решает это так: он упаковывает всю кухню, плиту, холодильник, каждый инструмент, точную раскладку, в одну коробку на колесах. Поставь этот фургон на фестивале, на парковке, в другом городе. Повар залезает внутрь, и все ровно там, где было. Та же коробка, та же кухня, готовит одинаково, где бы она ни стояла.

Контейнер — это такой фудтрак для твоего приложения. Он запечатывает код вместе с его полной средой: версией языка, вспомогательными кусками, настройками, всем сразу, в одну коробку. Запусти эту коробку на своем ноутбуке, на ноутбуке коллеги, на огромном сервере в Вирджинии — она каждый раз ведет себя одинаково, потому что кухня путешествует вместе с кодом, а не берется взаймы там, куда он случайно попал.

Docker — просто самая популярная марка фудтрака, настолько популярная, что название бренда стало глаголом. «Докеризировать» значит «упаковать это приложение в контейнер, чтобы оно везде запускалось одинаково». Когда слышишь «контейнер» и «Docker» в одном предложении, представляй тот же фургон.

Почему тебе не все равно, даже если ты никогда не будешь собирать контейнер сам:

Одна честная поправка по размеру. Контейнер — это запечатанная кухня, а не целое арендованное здание. Он намного легче, чем аренда полноценного сервера, а значит, на одной машине можно держать сразу десяток таких фургонов. В этой легкости весь смысл.

Контейнер упаковывает всю кухню в фургон. Поставь его где угодно, и он готовит одинаково. «У меня работает» тихо превращается в «работает на любой машине».

← все термины