Docker

Тема дорожной карты · DevOps Engineer

Docker упаковывает приложение вместе с его зависимостями, библиотеками и средой исполнения в неизменяемый образ, который одинаково работает на любом хосте с контейнерным runtime. Контейнеры разделяют ядро хоста через namespaces и cgroups, что делает их легковесными по сравнению с виртуалками. DevOps-цикл: написать Dockerfile, собрать образ, отправить в реестр и запустить на хосте или в оркестраторе (Kubernetes, ECS). Понимание кэша слоёв, multi-stage сборок и hardening образов отделяет рабочие образы от продакшен-готовых.

Как это работает

Docker заменила проблему "у меня работает" на воспроизводимые runtime-артефакты. Docker (и OCI-совместимые альтернативы — containerd, Podman) упаковывает приложение и его userspace-зависимости в слоёный image. Контейнеры разделяют хостовое ядро — это не VM — а изоляция обеспечивается Linux namespaces (PID, NET, MNT, USER) и cgroups для ресурсных лимитов. Build-пайплайн: Dockerfile → image → registry (Docker Hub, GHCR, Yandex Container Registry) → runtime; в продакшене обычно Kubernetes оркестрирует множество контейнеров по флоту нод.

Когда применять

Применяйте Docker для каждого нового сервиса с первого дня. Контейнер — единица деплоя в современной инфраструктуре: CI собирает images, registry хранит, Kubernetes (или Nomad, ECS) шедулит. Локальная разработка с Docker Compose даёт разработчикам production-подобное окружение на ноутбуке. Контейнеризация — также правильный шаг для legacy-приложений при миграции: оберните в Dockerfile, деплойте через Compose, потом постепенно переписывайте под Kubernetes-native паттерны.

Типичные ошибки

Ловушки контейнеров: раздутые images (FROM ubuntu:latest вместо alpine или distroless = 800 МБ вместо 50 МБ); запуск под root внутри контейнера (используйте USER 1000); запекание секретов в слои image (видно любому с pull-доступом); игнорирование сканирования (Trivy, Grype ловят известные CVE); пропуск multi-stage builds (build-зависимости попадают в runtime image); тег :latest в продакшене (ломает воспроизводимость). Всегда привязывайтесь к SHA digest для production-деплоев.

Связанные понятия

Полезные ресурсы

Проверить знания (1)

Загрузка вопросов…