Docker
Что это такое
Docker упаковывает приложение вместе со всем, что нужно для запуска — библиотеками, средой выполнения, значениями конфигурации по умолчанию — в образ. Образ собирается один раз и даёт одинаковые контейнеры везде, где выполняется, а это убирает самое старое оправдание в разработке: «у меня работало». Контейнер — не облегчённая виртуальная машина, а процесс на хосте, чья файловая система и взгляд на систему отгорожены.
Почему это важно
Разрыв между «работает здесь» и «работает там» — это место, где теряется большая доля времени поставки: отсутствующая библиотека, другая версия среды выполнения, настройка, которая есть в одном окружении и нет в другом. Упаковка приложения вместе с зависимостями закрывает этот разрыв, и один и тот же артефакт затем переезжает с ноутбука на тестовую машину и в продакшен-кластер без изменений. Контейнеры сделали возможными и системы оркестрации: планировщику нужна единица, которую он может запустить и заменить, не зная, что внутри.
Что в этом треке
- Образы и слои (06-cloud-devops/06-docker/01-images-and-layers) — как собирается образ, почему важны слои и как сохранить сборку быстрой.
- Запуск контейнеров и сохранение данных (06-cloud-devops/06-docker/02-running-containers-and-persisting-data) — запуск образа, сеть между контейнерами и проблема томов.
Предварительные требования
Нет.
Что читать дальше
- Kubernetes (06-cloud-devops/14-kubernetes) — оркестратор, который запускает контейнеры в масштабе, когда одного контейнера уже не хватает.
- Облачно-нативные вычисления (06-cloud-devops/13-cloud-native-computing) — приёмы проектирования, которые делают контейнеризованное приложение действительно заменяемым.