Перейти к содержимому

Docker: Обзор

Docker — это открытая платформа для разработки, доставки и запуска приложений в изолированных средах, называемых контейнерами. С момента выхода в 2013 году Docker изменил то, как команды разработчиков думают об инфраструктуре и деплойменте приложений.

Docker решает одну из главных проблем разработки: несоответствие среды между разработчиком и продакшеном. С помощью Docker вы упаковываете приложение вместе со всеми его зависимостями в единый переносимый артефакт — образ (image). Этот образ запускается одинаково на любой машине, где установлен Docker.

Ключевые компоненты Docker:

  • Docker Engine — демон, который управляет контейнерами
  • Docker CLI — инструмент командной строки для работы с Docker
  • Docker Hub — публичный реестр образов
  • Docker Compose — инструмент для управления многоконтейнерными приложениями
  • Dockerfile — текстовый файл с инструкциями для сборки образа

До контейнеров разработчики использовали виртуальные машины (VM) для изоляции приложений. Разница принципиальна:

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

Контейнер использует ядро хостовой ОС напрямую, изолируя только пространство процессов, сетевые интерфейсы и файловую систему. Контейнер занимает мегабайты и запускается за секунды.

VM: [App] [App] [App]
[Guest OS] [Guest OS] [Guest OS]
[Hypervisor]
[Host OS]
[Hardware]
Docker: [App] [App] [App]
[Container Runtime]
[Host OS Kernel]
[Hardware]

Docker — это не просто один инструмент, а целая экосистема:

  • Docker Desktop — GUI-приложение для macOS, Windows и Linux
  • Docker Compose — декларативное описание многосервисных приложений
  • Docker Swarm — встроенный оркестратор кластеров
  • Docker Scout — инструмент для анализа безопасности образов
  • Kubernetes — промышленный стандарт оркестрации (работает поверх Docker)
Окно терминала
# Запустить контейнер
docker run hello-world
# Список запущенных контейнеров
docker ps
# Список всех образов
docker images
# Сборка образа из Dockerfile
docker build -t myapp:1.0 .
# Остановить контейнер
docker stop container_id

Сегодня Docker используется в тысячах компаний по всему миру. CI/CD пайплайны строятся вокруг Docker-образов. Kubernetes — доминирующая система оркестрации — работает с Docker-совместимыми контейнерами. Знание Docker стало обязательным навыком для backend-разработчиков, DevOps-инженеров и даже фронтенд-разработчиков.

В этом курсе мы изучим Docker с нуля: от установки до деплоя полноценного fullstack-приложения в продакшен.