раздел 00

Что такое Docker и зачем

Знакомая боль: на вашем ноутбуке проект запускается, а у коллеги или на сервере падает. Не та версия Python, не хватает какой-то библиотеки, переменная окружения не та. Уходит вечер на разборки, почему «у меня же работало».

Docker упаковывает приложение вместе со всем его окружением в одну коробку - контейнер. Внутри лежит сам код, нужная версия языка, все библиотеки и настройки. Эту коробку можно запустить где угодно, и она везде ведёт себя одинаково.

Контейнер - это приложение плюс всё его окружение в одной коробке. Поэтому «работает у меня = работает везде».

Аналогия с грузовым контейнером

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

Docker делает то же самое с программами. Неважно, что внутри - сайт на Next.js, бот на Python или база данных. Снаружи это одинаковый контейнер, который любой сервер с Docker запустит одной командой, не зная, что там внутри.

Зачем это вайбкодеру

Одинаковая среда
Версии языка и библиотек зафиксированы внутри контейнера. На ноутбуке и на сервере - ровно одно и то же окружение.
Простой деплой
Не настраиваешь сервер руками. Положил контейнер - запустил одной командой. Откатиться к прошлой версии тоже просто.
Изоляция
Каждый проект в своей коробке. Не конфликтуют версии, ничего не ломает соседние приложения и саму систему.

Для вайбкодера это особенно ценно: вы не разбираетесь в тонкостях настройки серверов, а контейнер уносит эту настройку внутрь себя. Собрали один раз - запускается везде одинаково.