← Все этапы маршрута

Контейнер — изолированный процесс · R7

R7. Docker и Compose

Цель

Контейнеризировать уже понятное приложение и научиться отлаживать image, network, volume и runtime.

Что освоить

  • namespaces и cgroups концептуально
  • image layers, Dockerfile и registry
  • ports, networks, volumes и Compose
  • healthcheck и resource limits
  • non-root, multi-stage build и pinning

Материалы основного пути

  1. Docker: Get started EN · Документация
    • Начать здесь. Get started parts 1–6: image, container, app и persistence
    • Справочник. CLI/container/image/network reference из учебного проекта
  2. Docker Build: best practices EN · Документация
    • Обязательно. small base, multi-stage, cache, pinning и non-root
  3. Docker Lab: Building Container Images EN · Тренажёр
    • Практика. build, inspect, optimize и пересобрать image

Практика

Приложение, DB и proxy в Compose; image в registry; persistent data и healthchecks.

Проверьте результат

Проект стартует на чистой машине; данные переживают замену контейнера; секретов нет в image.

Вопросы, условия приёмки и доказательства

Ответьте и покажите

  • Чем image layer отличается от container filesystem?
  • Почему healthcheck не равен restart policy?

Условия приёмки

  • Clean Compose start
  • Data переживают recreate
  • Non-root/health/limits и отсутствие секретов доказаны

Учебный отказ: Удалить app-container и создать заново; затем сломать referenced dependency и получить unhealthy с диагностикой.

Артефакт: Compose-репозиторий + image digest + persistence/health evidence

Проект стартует на чистом host, image non-root и без секретов, health проходит, данные переживают пересоздание контейнера, limits видны inspect.

Хорошее доказательство: Repo + pinned digest + inspect/health/persistence transcript + image scan.

Недостаточно: latest-tag, root process, bind-mounted source и DB без проверенного persistent volume.

Углубление и справочные материалы

Темы для углубления

  • BuildKit cache и reproducibility
  • multi-arch images
  • runtime profiles и image provenance

Сократить image, воспроизводимо собрать его дважды, проверить non-root/read-only runtime и provenance/SBOM.

Результат: Image проходит scan, запускается с dropped capabilities, имеет health/limits и воспроизводимый build record.

Дополнительные материалы