Официальные источники
Все источники, использованные при создании курса. Правило: спорный или версионно-зависимый факт проверяется по официальной документации, а не по блогам. Сторонние материалы допускаются только как дополнительное объяснение и только после сверки.
Дата последней сверки: 2026-07-29.
Если материал курса расходится с текущей документацией — верна документация, а курс устарел. Сообщайте о расхождениях.
Версионный контекст
Курс проверялся на следующих версиях. Понимание версионного контекста важно: часть поведения Docker менялась.
| Компонент | Версия на момент сверки | Комментарий |
|---|---|---|
| Docker Engine | 28.x — 29.x | Engine 29 выпущен 10 ноября 2025 |
| Docker Compose | v2 (plugin docker compose) | v1 (docker-compose) снят с поддержки |
| Buildx | 0.34.x | BuildKit — сборщик по умолчанию с Engine 23.0 |
| containerd | 1.7.x | |
| runc | 1.3.x | |
| Ubuntu | 22.04, 24.04, 26.04 LTS | 26.04 «Resolute» — актуальная LTS |
| Python (образы) | 3.13, 3.14 | Тег python:latest указывает на 3.14 на базе Debian Trixie |
| cgroup | v2 | v1 объявлен deprecated в Engine 29 |
Ключевые версионные изменения, учтённые в курсе
| Изменение | Версия | Где отражено |
|---|---|---|
| containerd image store — по умолчанию для новых установок | Engine 29 | 1.4, раздел 03 |
docker images выводит дерево, untagged скрыты без --all | Engine 29 | 1.4 |
docker save/load поддерживают --platform | Engine 29 | раздел 03 |
| Минимальная версия API повышена до 1.44 | Engine 29 | 1.4 |
| Docker Content Trust удалён из CLI | Engine 29 | раздел 12 |
| cgroup v1 объявлен deprecated | Engine 29 | 1.1, 2.4 |
| Экспериментальный backend nftables | Engine 29 | раздел 08 |
| BuildKit — сборщик по умолчанию | Engine 23.0 | раздел 05 |
Ключ version в Compose не используется | Compose Specification | раздел 09 |
Формат apt-источников deb822 (.sources) | текущая документация | 1.2 |
Docker: основная документация
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| Docker Docs | https://docs.docker.com/ | Точка входа во всю документацию |
| Docker overview | https://docs.docker.com/get-started/docker-overview/ | Определения image, container, registry, repository; сравнение с VM |
| Docker Engine | https://docs.docker.com/engine/ | Архитектура daemon–client |
| Docker Engine release notes 29 | https://docs.docker.com/engine/release-notes/29/ | Все изменения Engine 29: containerd image store, вывод docker images, API 1.44, deprecated cgroup v1 |
| Docker Engine release notes 28 | https://docs.docker.com/engine/release-notes/28/ | Изменения предыдущей мажорной версии |
| Deprecated Engine features | https://docs.docker.com/engine/deprecated/ | Полный список устаревшего и удалённого с указанием версий |
Установка и настройка
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| Install Docker Engine | https://docs.docker.com/engine/install/ | Поддерживаемые платформы, способы установки |
| Install Docker Engine on Ubuntu | https://docs.docker.com/engine/install/ubuntu/ | Список конфликтующих пакетов, GPG-ключ, файл источника deb822, пять устанавливаемых пакетов, поддерживаемые версии Ubuntu |
| Post-installation steps for Linux | https://docs.docker.com/engine/install/linux-postinstall/ | Группа docker и предупреждение о равносильности root |
| Docker daemon configuration | https://docs.docker.com/engine/daemon/ | daemon.json, применение настроек |
| dockerd CLI reference | https://docs.docker.com/reference/cli/docker/dockerd/ | Все параметры daemon, --validate, live-restore |
| Docker Compose installation | https://docs.docker.com/compose/install/linux/ | Установка Compose v2 как плагина |
| Migrate to Compose v2 | https://docs.docker.com/compose/releases/migrate/ | Прекращение поддержки v1 |
| Docker contexts | https://docs.docker.com/engine/manage-resources/contexts/ | Создание и переключение contexts |
Безопасность
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| Docker Engine security | https://docs.docker.com/engine/security/ | Модель безопасности: namespaces, cgroups, capabilities, seccomp; поверхность атаки daemon |
| Docker daemon attack surface | https://docs.docker.com/engine/security/#docker-daemon-attack-surface | «Only trusted users should be allowed to control your Docker daemon» |
| Linux kernel capabilities | https://docs.docker.com/engine/security/#linux-kernel-capabilities | Подход allowlist, отбор большинства capabilities |
| Rootless mode | https://docs.docker.com/engine/security/rootless/ | Предпосылки, установка, DOCKER_HOST, lingering, известные ограничения, привилегированные порты, требования к cgroup v2 |
| Rootless mode: tips | https://docs.docker.com/engine/security/rootless/tips/ | Делегирование cgroup-контроллеров |
| Rootless mode: troubleshooting | https://docs.docker.com/engine/security/rootless/troubleshoot/ | Диагностика проблем установки |
| Isolate containers with a user namespace | https://docs.docker.com/engine/security/userns-remap/ | Механизм userns-remap |
| Protect the Docker daemon socket | https://docs.docker.com/engine/security/protect-access/ | Защита доступа, требования TLS |
| Seccomp security profiles | https://docs.docker.com/engine/security/seccomp/ | Профиль по умолчанию и блокируемые системные вызовы |
| AppArmor security profiles | https://docs.docker.com/engine/security/apparmor/ | Профиль docker-default |
Образы и сборка
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| Dockerfile reference | https://docs.docker.com/reference/dockerfile/ | Все инструкции, директива # syntax=docker/dockerfile:1, heredocs, COPY --link, COPY --parents, RUN --mount, правила ARG и ENV, deprecated MAINTAINER и ENV key value |
| Building best practices | https://docs.docker.com/build/building/best-practices/ | Ephemeral containers, .dockerignore, multi-stage, минимизация слоёв, pinning по digest, рекомендации по каждой инструкции |
| Multi-stage builds | https://docs.docker.com/build/building/multi-stage/ | Именование стадий, COPY --from, --target |
| Build cache | https://docs.docker.com/build/cache/ | Правила инвалидации кэша |
| Cache storage backends | https://docs.docker.com/build/cache/backends/ | cache-from, cache-to, типы кэша для CI |
| Build secrets | https://docs.docker.com/build/building/secrets/ | Secret mounts вместо build args |
| BuildKit | https://docs.docker.com/build/buildkit/ | Возможности сборщика, отличия от legacy builder |
| Docker build attestations | https://docs.docker.com/build/metadata/attestations/ | SBOM и provenance |
| Docker storage drivers | https://docs.docker.com/engine/storage/drivers/ | Требования overlay2, включая ftype=1 для xfs |
| containerd image store | https://docs.docker.com/engine/storage/containerd/ | features.containerd-snapshotter, отличия от классического хранилища, предупреждения при переключении |
Containers и ресурсы
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| docker run reference | https://docs.docker.com/reference/cli/docker/container/run/ | Все флаги запуска, --rm, -i, -t, --cap-add, --cap-drop, --privileged |
| Runtime options with Memory, CPUs and GPUs | https://docs.docker.com/engine/containers/resource_constraints/ | --memory, --cpus, --memory-swap, --pids-limit и их поведение |
| docker update reference | https://docs.docker.com/reference/cli/docker/container/update/ | Изменение лимитов работающего container |
| Start containers automatically | https://docs.docker.com/engine/containers/start-containers-automatically/ | Restart policies и их взаимодействие с перезапуском daemon |
| docker stats reference | https://docs.docker.com/reference/cli/docker/container/stats/ | Источник метрик и интерпретация колонок |
| docker inspect reference | https://docs.docker.com/reference/cli/docker/inspect/ | Структура вывода, шаблоны --format |
| docker system df | https://docs.docker.com/reference/cli/docker/system/df/ | Категории использования диска |
| docker info reference | https://docs.docker.com/reference/cli/docker/system/info/ | Поля вывода |
| Docker CLI reference | https://docs.docker.com/reference/cli/docker/ | Структура команд, management commands, legacy shorthand |
Storage и networking
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| Storage overview | https://docs.docker.com/engine/storage/ | Volumes, bind mounts, tmpfs и критерии выбора |
| Volumes | https://docs.docker.com/engine/storage/volumes/ | Управление volumes, синтаксис --mount против -v |
| Bind mounts | https://docs.docker.com/engine/storage/bind-mounts/ | Поведение при перекрытии содержимого образа |
| tmpfs mounts | https://docs.docker.com/engine/storage/tmpfs/ | Данные в памяти, ограничения |
| Networking overview | https://docs.docker.com/engine/network/ | Типы сетей, драйверы |
| Bridge network driver | https://docs.docker.com/engine/network/drivers/bridge/ | Default bridge против user-defined, встроенный DNS |
| Host network driver | https://docs.docker.com/engine/network/drivers/host/ | Режим host и его последствия |
| Packet filtering and firewalls | https://docs.docker.com/engine/network/packet-filtering-firewalls/ | Правила iptables/nftables, публикация портов, взаимодействие с firewall |
Compose
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| Compose file reference | https://docs.docker.com/reference/compose-file/ | Compose Specification целиком |
| Compose services | https://docs.docker.com/reference/compose-file/services/ | Все атрибуты service, depends_on с условиями, healthcheck, deploy.resources, develop, profiles |
| Compose networks | https://docs.docker.com/reference/compose-file/networks/ | Объявление сетей, изоляция |
| Compose volumes | https://docs.docker.com/reference/compose-file/volumes/ | Named volumes на уровне проекта, external |
| Compose secrets | https://docs.docker.com/reference/compose-file/secrets/ | Доставка секретов файлами |
| Environment variables in Compose | https://docs.docker.com/compose/how-tos/environment-variables/ | Приоритет источников, interpolation, .env |
| Compose startup order | https://docs.docker.com/compose/how-tos/startup-order/ | Почему depends_on не гарантирует готовность |
| Compose file merging | https://docs.docker.com/reference/compose-file/merge/ | Правила слияния нескольких файлов |
| docker compose CLI | https://docs.docker.com/reference/cli/docker/compose/ | Команды жизненного цикла |
Registry и доставка
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| docker pull reference | https://docs.docker.com/reference/cli/docker/image/pull/ | Структура имени образа, значения по умолчанию, загрузка по digest |
| docker tag reference | https://docs.docker.com/reference/cli/docker/image/tag/ | Правила именования, определение registry по имени хоста |
| Distribution registry | https://distribution.github.io/distribution/ | Запуск и настройка локального registry |
| Docker Hub | https://docs.docker.com/docker-hub/ | Namespace library, официальные образы, ограничения |
Python
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| Python official image | https://hub.docker.com/_/python | Варианты slim, alpine, полный; предупреждение о musl против glibc; поддерживаемые версии и база Debian |
| Docker Python language guide | https://docs.docker.com/language/python/ | Официальные рекомендации по контейнеризации Python |
| Python Packaging User Guide | https://packaging.python.org/ | Зависимости, wheels, pyproject.toml, lock files |
Python documentation: signal | https://docs.python.org/3/library/signal.html | Обработка SIGTERM, ограничения в потоках и asyncio |
Python documentation: logging | https://docs.python.org/3/library/logging.html | Настройка логирования, вывод в stdout и stderr |
| Python: command line and environment | https://docs.python.org/3/using/cmdline.html | PYTHONUNBUFFERED, PYTHONDONTWRITEBYTECODE, PYTHONPATH, -u |
| uv: using uv in Docker | https://docs.astral.sh/uv/guides/integration/docker/ | Копирование бинарника из ghcr.io/astral-sh/uv, UV_COMPILE_BYTECODE, UV_LINK_MODE, паттерн --no-install-project, multi-stage с --no-editable |
| Poetry documentation | https://python-poetry.org/docs/ | Управление зависимостями, lock file |
| Gunicorn documentation | https://docs.gunicorn.org/ | Worker-процессы, обработка сигналов, graceful shutdown |
| Uvicorn documentation | https://www.uvicorn.org/ | Запуск ASGI-приложений, --reload только для разработки |
| FastAPI documentation | https://fastapi.tiangolo.com/ | Lifespan events, конфигурация, развёртывание |
| Flask documentation | https://flask.palletsprojects.com/ | Почему flask run не production server |
| pytest documentation | https://docs.pytest.org/ | Фикстуры, маркеры, коды возврата |
| Testcontainers for Python | https://testcontainers-python.readthedocs.io/ | Управление окружением из кода теста |
Linux и ядро
Стандарты OCI
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| OCI Image Specification | https://github.com/opencontainers/image-spec | Manifest, config, слои, image index для multi-platform |
| OCI Runtime Specification | https://github.com/opencontainers/runtime-spec | Формат OCI bundle, структура config.json, жизненный цикл |
| OCI Distribution Specification | https://github.com/opencontainers/distribution-spec | Протокол обмена с registry |
| Open Container Initiative | https://opencontainers.org/ | Состав и назначение спецификаций |
| containerd | https://containerd.io/docs/ | Роль, пространства имён, снапшоттеры |
| runc | https://github.com/opencontainers/runc | Реализация Runtime Specification |
CI/CD
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| GitHub Actions documentation | https://docs.github.com/en/actions | Синтаксис workflow, secrets, условия выполнения |
| build-push-action | https://github.com/docker/build-push-action | Сборка и публикация образов в GitHub Actions |
| metadata-action | https://github.com/docker/metadata-action | Генерация тегов и меток |
| setup-buildx-action | https://github.com/docker/setup-buildx-action | Настройка Buildx в CI |
| GitLab CI/CD documentation | https://docs.gitlab.com/ci/ | Stages, jobs, services, переменные |
| GitLab: build Docker images | https://docs.gitlab.com/ci/docker/using_docker_build/ | Docker-in-Docker против сокета runner |
Kubernetes (обзорный раздел 18)
| Источник | Ссылка | Что подтверждает |
|---|---|---|
| Kubernetes documentation | https://kubernetes.io/docs/ | Объекты: pod, deployment, service, configmap, secret |
| Container runtimes | https://kubernetes.io/docs/setup/production-environment/container-runtimes/ | CRI и поддерживаемые runtime |
| Don't Panic: Kubernetes and Docker | https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/ | Удаление dockershim, сохранение совместимости образов |
| Configure liveness, readiness and startup probes | https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ | Различие проб |
| Managing resources for containers | https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ | Requests против limits |
Как проверять актуальность
Документация Docker меняется. Три правила работы с источниками из этого списка.
- Версионно-зависимые темы проверяйте перед применением. Прежде всего: установка, containerd image store, поведение
docker imagesиdocker save, rate limits Docker Hub, набор capabilities по умолчанию. - Release notes — первое место для проверки. Страница https://docs.docker.com/engine/release-notes/ содержит все изменения по версиям. Раздел «Deprecated features» показывает, что скоро исчезнет.
- Сверяйте с фактическим поведением своей системы.
docker version,docker infoи--helpконкретной команды отражают то, что установлено у вас, — это точнее любой документации.
Что не использовалось как источник истины
Курс сознательно не опирается на:
- публикации в блогах и статьи на агрегаторах — они устаревают и часто содержат ошибки;
- ответы на форумах — полезны для поиска направления, но не для проверки фактов;
- сгенерированные примеры конфигураций без проверки;
- материалы курсов и книг без сверки с документацией.
Сторонние материалы применялись только для дополнительных объяснений и только после подтверждения по официальному источнику.