Главная/Материалы/Материал

Официальные источники

Все источники, использованные при создании курса. Правило: спорный или версионно-зависимый факт проверяется по официальной документации, а не по блогам. Сторонние материалы допускаются только как дополнительное объяснение и только после сверки.

Дата последней сверки: 2026-07-29.

Если материал курса расходится с текущей документацией — верна документация, а курс устарел. Сообщайте о расхождениях.


Версионный контекст

Курс проверялся на следующих версиях. Понимание версионного контекста важно: часть поведения Docker менялась.

КомпонентВерсия на момент сверкиКомментарий
Docker Engine28.x — 29.xEngine 29 выпущен 10 ноября 2025
Docker Composev2 (plugin docker compose)v1 (docker-compose) снят с поддержки
Buildx0.34.xBuildKit — сборщик по умолчанию с Engine 23.0
containerd1.7.x
runc1.3.x
Ubuntu22.04, 24.04, 26.04 LTS26.04 «Resolute» — актуальная LTS
Python (образы)3.13, 3.14Тег python:latest указывает на 3.14 на базе Debian Trixie
cgroupv2v1 объявлен deprecated в Engine 29

Ключевые версионные изменения, учтённые в курсе

ИзменениеВерсияГде отражено
containerd image store — по умолчанию для новых установокEngine 291.4, раздел 03
docker images выводит дерево, untagged скрыты без --allEngine 291.4
docker save/load поддерживают --platformEngine 29раздел 03
Минимальная версия API повышена до 1.44Engine 291.4
Docker Content Trust удалён из CLIEngine 29раздел 12
cgroup v1 объявлен deprecatedEngine 291.1, 2.4
Экспериментальный backend nftablesEngine 29раздел 08
BuildKit — сборщик по умолчаниюEngine 23.0раздел 05
Ключ version в Compose не используетсяCompose Specificationраздел 09
Формат apt-источников deb822 (.sources)текущая документация1.2

Docker: основная документация

ИсточникСсылкаЧто подтверждает
Docker Docshttps://docs.docker.com/Точка входа во всю документацию
Docker overviewhttps://docs.docker.com/get-started/docker-overview/Определения image, container, registry, repository; сравнение с VM
Docker Enginehttps://docs.docker.com/engine/Архитектура daemon–client
Docker Engine release notes 29https://docs.docker.com/engine/release-notes/29/Все изменения Engine 29: containerd image store, вывод docker images, API 1.44, deprecated cgroup v1
Docker Engine release notes 28https://docs.docker.com/engine/release-notes/28/Изменения предыдущей мажорной версии
Deprecated Engine featureshttps://docs.docker.com/engine/deprecated/Полный список устаревшего и удалённого с указанием версий

Установка и настройка

ИсточникСсылкаЧто подтверждает
Install Docker Enginehttps://docs.docker.com/engine/install/Поддерживаемые платформы, способы установки
Install Docker Engine on Ubuntuhttps://docs.docker.com/engine/install/ubuntu/Список конфликтующих пакетов, GPG-ключ, файл источника deb822, пять устанавливаемых пакетов, поддерживаемые версии Ubuntu
Post-installation steps for Linuxhttps://docs.docker.com/engine/install/linux-postinstall/Группа docker и предупреждение о равносильности root
Docker daemon configurationhttps://docs.docker.com/engine/daemon/daemon.json, применение настроек
dockerd CLI referencehttps://docs.docker.com/reference/cli/docker/dockerd/Все параметры daemon, --validate, live-restore
Docker Compose installationhttps://docs.docker.com/compose/install/linux/Установка Compose v2 как плагина
Migrate to Compose v2https://docs.docker.com/compose/releases/migrate/Прекращение поддержки v1
Docker contextshttps://docs.docker.com/engine/manage-resources/contexts/Создание и переключение contexts

Безопасность

ИсточникСсылкаЧто подтверждает
Docker Engine securityhttps://docs.docker.com/engine/security/Модель безопасности: namespaces, cgroups, capabilities, seccomp; поверхность атаки daemon
Docker daemon attack surfacehttps://docs.docker.com/engine/security/#docker-daemon-attack-surface«Only trusted users should be allowed to control your Docker daemon»
Linux kernel capabilitieshttps://docs.docker.com/engine/security/#linux-kernel-capabilitiesПодход allowlist, отбор большинства capabilities
Rootless modehttps://docs.docker.com/engine/security/rootless/Предпосылки, установка, DOCKER_HOST, lingering, известные ограничения, привилегированные порты, требования к cgroup v2
Rootless mode: tipshttps://docs.docker.com/engine/security/rootless/tips/Делегирование cgroup-контроллеров
Rootless mode: troubleshootinghttps://docs.docker.com/engine/security/rootless/troubleshoot/Диагностика проблем установки
Isolate containers with a user namespacehttps://docs.docker.com/engine/security/userns-remap/Механизм userns-remap
Protect the Docker daemon sockethttps://docs.docker.com/engine/security/protect-access/Защита доступа, требования TLS
Seccomp security profileshttps://docs.docker.com/engine/security/seccomp/Профиль по умолчанию и блокируемые системные вызовы
AppArmor security profileshttps://docs.docker.com/engine/security/apparmor/Профиль docker-default

Образы и сборка

ИсточникСсылкаЧто подтверждает
Dockerfile referencehttps://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 practiceshttps://docs.docker.com/build/building/best-practices/Ephemeral containers, .dockerignore, multi-stage, минимизация слоёв, pinning по digest, рекомендации по каждой инструкции
Multi-stage buildshttps://docs.docker.com/build/building/multi-stage/Именование стадий, COPY --from, --target
Build cachehttps://docs.docker.com/build/cache/Правила инвалидации кэша
Cache storage backendshttps://docs.docker.com/build/cache/backends/cache-from, cache-to, типы кэша для CI
Build secretshttps://docs.docker.com/build/building/secrets/Secret mounts вместо build args
BuildKithttps://docs.docker.com/build/buildkit/Возможности сборщика, отличия от legacy builder
Docker build attestationshttps://docs.docker.com/build/metadata/attestations/SBOM и provenance
Docker storage drivershttps://docs.docker.com/engine/storage/drivers/Требования overlay2, включая ftype=1 для xfs
containerd image storehttps://docs.docker.com/engine/storage/containerd/features.containerd-snapshotter, отличия от классического хранилища, предупреждения при переключении

Containers и ресурсы

ИсточникСсылкаЧто подтверждает
docker run referencehttps://docs.docker.com/reference/cli/docker/container/run/Все флаги запуска, --rm, -i, -t, --cap-add, --cap-drop, --privileged
Runtime options with Memory, CPUs and GPUshttps://docs.docker.com/engine/containers/resource_constraints/--memory, --cpus, --memory-swap, --pids-limit и их поведение
docker update referencehttps://docs.docker.com/reference/cli/docker/container/update/Изменение лимитов работающего container
Start containers automaticallyhttps://docs.docker.com/engine/containers/start-containers-automatically/Restart policies и их взаимодействие с перезапуском daemon
docker stats referencehttps://docs.docker.com/reference/cli/docker/container/stats/Источник метрик и интерпретация колонок
docker inspect referencehttps://docs.docker.com/reference/cli/docker/inspect/Структура вывода, шаблоны --format
docker system dfhttps://docs.docker.com/reference/cli/docker/system/df/Категории использования диска
docker info referencehttps://docs.docker.com/reference/cli/docker/system/info/Поля вывода
Docker CLI referencehttps://docs.docker.com/reference/cli/docker/Структура команд, management commands, legacy shorthand

Storage и networking

ИсточникСсылкаЧто подтверждает
Storage overviewhttps://docs.docker.com/engine/storage/Volumes, bind mounts, tmpfs и критерии выбора
Volumeshttps://docs.docker.com/engine/storage/volumes/Управление volumes, синтаксис --mount против -v
Bind mountshttps://docs.docker.com/engine/storage/bind-mounts/Поведение при перекрытии содержимого образа
tmpfs mountshttps://docs.docker.com/engine/storage/tmpfs/Данные в памяти, ограничения
Networking overviewhttps://docs.docker.com/engine/network/Типы сетей, драйверы
Bridge network driverhttps://docs.docker.com/engine/network/drivers/bridge/Default bridge против user-defined, встроенный DNS
Host network driverhttps://docs.docker.com/engine/network/drivers/host/Режим host и его последствия
Packet filtering and firewallshttps://docs.docker.com/engine/network/packet-filtering-firewalls/Правила iptables/nftables, публикация портов, взаимодействие с firewall

Compose

ИсточникСсылкаЧто подтверждает
Compose file referencehttps://docs.docker.com/reference/compose-file/Compose Specification целиком
Compose serviceshttps://docs.docker.com/reference/compose-file/services/Все атрибуты service, depends_on с условиями, healthcheck, deploy.resources, develop, profiles
Compose networkshttps://docs.docker.com/reference/compose-file/networks/Объявление сетей, изоляция
Compose volumeshttps://docs.docker.com/reference/compose-file/volumes/Named volumes на уровне проекта, external
Compose secretshttps://docs.docker.com/reference/compose-file/secrets/Доставка секретов файлами
Environment variables in Composehttps://docs.docker.com/compose/how-tos/environment-variables/Приоритет источников, interpolation, .env
Compose startup orderhttps://docs.docker.com/compose/how-tos/startup-order/Почему depends_on не гарантирует готовность
Compose file merginghttps://docs.docker.com/reference/compose-file/merge/Правила слияния нескольких файлов
docker compose CLIhttps://docs.docker.com/reference/cli/docker/compose/Команды жизненного цикла

Registry и доставка

ИсточникСсылкаЧто подтверждает
docker pull referencehttps://docs.docker.com/reference/cli/docker/image/pull/Структура имени образа, значения по умолчанию, загрузка по digest
docker tag referencehttps://docs.docker.com/reference/cli/docker/image/tag/Правила именования, определение registry по имени хоста
Distribution registryhttps://distribution.github.io/distribution/Запуск и настройка локального registry
Docker Hubhttps://docs.docker.com/docker-hub/Namespace library, официальные образы, ограничения

Python

ИсточникСсылкаЧто подтверждает
Python official imagehttps://hub.docker.com/_/pythonВарианты slim, alpine, полный; предупреждение о musl против glibc; поддерживаемые версии и база Debian
Docker Python language guidehttps://docs.docker.com/language/python/Официальные рекомендации по контейнеризации Python
Python Packaging User Guidehttps://packaging.python.org/Зависимости, wheels, pyproject.toml, lock files
Python documentation: signalhttps://docs.python.org/3/library/signal.htmlОбработка SIGTERM, ограничения в потоках и asyncio
Python documentation: logginghttps://docs.python.org/3/library/logging.htmlНастройка логирования, вывод в stdout и stderr
Python: command line and environmenthttps://docs.python.org/3/using/cmdline.htmlPYTHONUNBUFFERED, PYTHONDONTWRITEBYTECODE, PYTHONPATH, -u
uv: using uv in Dockerhttps://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 documentationhttps://python-poetry.org/docs/Управление зависимостями, lock file
Gunicorn documentationhttps://docs.gunicorn.org/Worker-процессы, обработка сигналов, graceful shutdown
Uvicorn documentationhttps://www.uvicorn.org/Запуск ASGI-приложений, --reload только для разработки
FastAPI documentationhttps://fastapi.tiangolo.com/Lifespan events, конфигурация, развёртывание
Flask documentationhttps://flask.palletsprojects.com/Почему flask run не production server
pytest documentationhttps://docs.pytest.org/Фикстуры, маркеры, коды возврата
Testcontainers for Pythonhttps://testcontainers-python.readthedocs.io/Управление окружением из кода теста

Linux и ядро

ИсточникСсылкаЧто подтверждает
namespaces(7)https://man7.org/linux/man-pages/man7/namespaces.7.htmlПолный список типов namespaces, флаги CLONE_NEW*, файлы /proc/<pid>/ns/
pid_namespaces(7)https://man7.org/linux/man-pages/man7/pid_namespaces.7.htmlИерархия, особый статус PID 1
user_namespaces(7)https://man7.org/linux/man-pages/man7/user_namespaces.7.htmlОтображение UID и GID
network_namespaces(7)https://man7.org/linux/man-pages/man7/network_namespaces.7.htmlСостав сетевого namespace
mount_namespaces(7)https://man7.org/linux/man-pages/man7/mount_namespaces.7.htmlДерево монтирований, mount propagation
capabilities(7)https://man7.org/linux/man-pages/man7/capabilities.7.htmlПеречень capabilities, наборы permitted/effective/bounding/ambient
cgroups(7)https://man7.org/linux/man-pages/man7/cgroups.7.htmlОбщая модель, отличия v1 и v2
Control Group v2https://docs.kernel.org/admin-guide/cgroup-v2.htmlЕдиная иерархия, файлы интерфейса контроллеров, семантика max/high/current
OverlayFShttps://docs.kernel.org/filesystems/overlayfs.htmllowerdir, upperdir, workdir, copy-up, whiteout
signal(7)https://man7.org/linux/man-pages/man7/signal.7.htmlНомера сигналов, поведение по умолчанию
unshare(1)https://man7.org/linux/man-pages/man1/unshare.1.htmlФлаги --fork, --mount-proc
nsenter(1)https://man7.org/linux/man-pages/man1/nsenter.1.htmlВход в namespaces другого процесса
lsns(8)https://man7.org/linux/man-pages/man8/lsns.8.htmlПросмотр namespaces системы
capsh(1)https://man7.org/linux/man-pages/man1/capsh.1.htmlПросмотр и расшифровка масок capabilities
setcap(8)https://man7.org/linux/man-pages/man8/setcap.8.htmlНазначение capabilities файлам
proc(5)https://man7.org/linux/man-pages/man5/proc.5.htmlСодержимое /proc/<pid>/
systemctl(1)https://man7.org/linux/man-pages/man1/systemctl.1.htmlУправление unit, edit, revert, cat
journalctl(1)https://man7.org/linux/man-pages/man1/journalctl.1.htmlФильтрация журнала
subuid(5)https://man7.org/linux/man-pages/man5/subuid.5.htmlФормат файлов подчинённых UID
usermod(8)https://man7.org/linux/man-pages/man8/usermod.8.htmlФлаги -a и -G
os-release(5)https://man7.org/linux/man-pages/man5/os-release.5.htmlПоля VERSION_CODENAME, UBUNTU_CODENAME
sources.list(5)https://manpages.ubuntu.com/manpages/noble/man5/sources.list.5.htmlФормат deb822

Стандарты OCI

ИсточникСсылкаЧто подтверждает
OCI Image Specificationhttps://github.com/opencontainers/image-specManifest, config, слои, image index для multi-platform
OCI Runtime Specificationhttps://github.com/opencontainers/runtime-specФормат OCI bundle, структура config.json, жизненный цикл
OCI Distribution Specificationhttps://github.com/opencontainers/distribution-specПротокол обмена с registry
Open Container Initiativehttps://opencontainers.org/Состав и назначение спецификаций
containerdhttps://containerd.io/docs/Роль, пространства имён, снапшоттеры
runchttps://github.com/opencontainers/runcРеализация Runtime Specification

CI/CD

ИсточникСсылкаЧто подтверждает
GitHub Actions documentationhttps://docs.github.com/en/actionsСинтаксис workflow, secrets, условия выполнения
build-push-actionhttps://github.com/docker/build-push-actionСборка и публикация образов в GitHub Actions
metadata-actionhttps://github.com/docker/metadata-actionГенерация тегов и меток
setup-buildx-actionhttps://github.com/docker/setup-buildx-actionНастройка Buildx в CI
GitLab CI/CD documentationhttps://docs.gitlab.com/ci/Stages, jobs, services, переменные
GitLab: build Docker imageshttps://docs.gitlab.com/ci/docker/using_docker_build/Docker-in-Docker против сокета runner

Kubernetes (обзорный раздел 18)

ИсточникСсылкаЧто подтверждает
Kubernetes documentationhttps://kubernetes.io/docs/Объекты: pod, deployment, service, configmap, secret
Container runtimeshttps://kubernetes.io/docs/setup/production-environment/container-runtimes/CRI и поддерживаемые runtime
Don't Panic: Kubernetes and Dockerhttps://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/Удаление dockershim, сохранение совместимости образов
Configure liveness, readiness and startup probeshttps://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/Различие проб
Managing resources for containershttps://kubernetes.io/docs/concepts/configuration/manage-resources-containers/Requests против limits

Как проверять актуальность

Документация Docker меняется. Три правила работы с источниками из этого списка.

  1. Версионно-зависимые темы проверяйте перед применением. Прежде всего: установка, containerd image store, поведение docker images и docker save, rate limits Docker Hub, набор capabilities по умолчанию.
  2. Release notes — первое место для проверки. Страница https://docs.docker.com/engine/release-notes/ содержит все изменения по версиям. Раздел «Deprecated features» показывает, что скоро исчезнет.
  3. Сверяйте с фактическим поведением своей системы. docker version, docker info и --help конкретной команды отражают то, что установлено у вас, — это точнее любой документации.

Что не использовалось как источник истины

Курс сознательно не опирается на:

  • публикации в блогах и статьи на агрегаторах — они устаревают и часто содержат ошибки;
  • ответы на форумах — полезны для поиска направления, но не для проверки фактов;
  • сгенерированные примеры конфигураций без проверки;
  • материалы курсов и книг без сверки с документацией.

Сторонние материалы применялись только для дополнительных объяснений и только после подтверждения по официальному источнику.


Навигация

Вернуться к главному оглавлению
Справочники
Рабочие примеры

Markdown на GitHub ↗