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

Контейнер / Docker
«Но у меня на компьютере работает» — самая старая отмазка в софте. Контейнер наконец-то ее убил.
Вот какую проблему он убивает. Софт никогда не работает в вакууме. Ему нужна конкретная среда вокруг: правильная версия языка, правильные вспомогательные куски, конкретные настройки. На твоем ноутбуке одна среда. На живом сервере чуть другая. На машине коллеги третья. Поэтому код, который идеально работает у тебя, где-то еще падает лицом в пол не потому, что изменился код, а потому что кухня вокруг другая.
Фудтрак. Обычная ресторанная кухня, та самая кухня при зале из прошлых примеров, прикручена к одному зданию. Перенеси повара в другое здание — духовки незнакомые, газовая линия другая, ничего не лежит там, куда тянется рука. Фудтрак решает это так: он упаковывает всю кухню, плиту, холодильник, каждый инструмент, точную раскладку, в одну коробку на колесах. Поставь этот фургон на фестивале, на парковке, в другом городе. Повар залезает внутрь, и все ровно там, где было. Та же коробка, та же кухня, готовит одинаково, где бы она ни стояла.
Контейнер — это такой фудтрак для твоего приложения. Он запечатывает код вместе с его полной средой: версией языка, вспомогательными кусками, настройками, всем сразу, в одну коробку. Запусти эту коробку на своем ноутбуке, на ноутбуке коллеги, на огромном сервере в Вирджинии — она каждый раз ведет себя одинаково, потому что кухня путешествует вместе с кодом, а не берется взаймы там, куда он случайно попал.
Docker — просто самая популярная марка фудтрака, настолько популярная, что название бренда стало глаголом. «Докеризировать» значит «упаковать это приложение в контейнер, чтобы оно везде запускалось одинаково». Когда слышишь «контейнер» и «Docker» в одном предложении, представляй тот же фургон.
Почему тебе не все равно, даже если ты никогда не будешь собирать контейнер сам:
- Поэтому современные деплои надежные. Ты не отправляешь голый код и не молишься, чтобы сервер совпал с твоим ноутбуком. Ты отправляешь весь фургон.
- Поэтому агент может поднять твой проект на свежей машине, и все просто заработает. Он привез свою кухню.
- Это напрямую связано с serverless. Те машины, которые провайдер достает из теплого пула на полсекунды, пока работает твой код? Очень часто они запускают твое приложение как контейнер: фургон, который для тебя ставят по требованию, а потом увозят.
Одна честная поправка по размеру. Контейнер — это запечатанная кухня, а не целое арендованное здание. Он намного легче, чем аренда полноценного сервера, а значит, на одной машине можно держать сразу десяток таких фургонов. В этой легкости весь смысл.
Контейнер упаковывает всю кухню в фургон. Поставь его где угодно, и он готовит одинаково. «У меня работает» тихо превращается в «работает на любой машине».