Что такое Docker?
Docker — это платформа с открытым исходным кодом для автоматизации разработки, доставки и запуска приложений в изолированных средах, называемых контейнерами.
Аналогия из жизни: Docker — это как морской контейнер для перевозки грузов. Не важно, что внутри — мебель, электроника или продукты — контейнер стандартизирован, его можно погрузить на любой корабль, поезд или грузовик. Так и Docker-контейнер: внутри может быть любое приложение, но он запустится на любой машине с установленным Docker.
Docker позволяет упаковать приложение вместе со всем его окружением и зависимостями в стандартизированный блок (контейнер), который можно запустить на любой машине с установленным Docker. Это решает классическую проблему “у меня на машине работает, а на сервере нет”.
Зачем нужен Docker
- Единообразие окружения — разработка, тестирование и production используют одинаковое окружение
- Изоляция — каждое приложение работает в своём контейнере, не мешая другим
- Быстрое развёртывание — контейнеры запускаются за секунды, в отличие от виртуальных машин
- Масштабирование — легко запустить несколько экземпляров приложения
- Воспроизводимость — Dockerfile описывает среду декларативно, что гарантирует одинаковый результат при сборке
- Упрощение CI/CD — контейнеры прекрасно вписываются в пайплайны непрерывной интеграции и доставки
На собеседовании: достаточно дать определение и перечислить 3-4 преимущества. Покажите, что понимаете главную идею: Docker решает проблему “works on my machine” за счёт упаковки приложения вместе с окружением. Часто спрашивают следом про отличие от виртуализации.