Установка Docker

Тема дорожной карты · Docker & Containers

Docker представляет собой мощный инструмент для разработки и развертывания приложений, доступный в нескольких вариантах: Docker Engine для Linux-серверов, Docker Desktop для macOS / Windows / Linux-десктопов (с лёгкой ВМ внутри) и отдельный CLI docker. Установка Docker из официальных репозиториев гарантирует, что все необходимые компоненты, такие как containerd, BuildKit и плагин compose, будут согласованы и работоспособны. Дистрибутивные пакеты, однако, часто устаревают, что может привести к проблемам совместимости. Для проверки корректности установки можно использовать команды docker run hello-world и docker compose version.

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

Установка Docker на Linux предполагает использование Docker Engine и containerd, которые работают нативно без необходимости запуска виртуальной машины. На macOS и Windows Docker Desktop запускает виртуальную машину Linux под капотом (HyperKit/WSL2) и предоставляет тот же CLI. Rootless-режим запускает демон под не-root пользователем, что уменьшает поверхность атаки, но при этом требует учета специфических особенностей сети. В Linux группа docker функционально эквивалентна root-правам, позволяя любому пользователю в ней монтировать файловые системы хоста.

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

Docker Desktop идеален для разработки на ноутбуках, поскольку он предоставляет удобный интерфейс и простоту использования. Для производственных серверов Linux рекомендуется установка Docker Engine напрямую. Для разработки и тестирования, где лицензионные условия Docker Desktop могут быть нежелательны, подходят альтернативные решения, такие как OrbStack для macOS, Rancher Desktop, Podman Desktop или Engine внутри Lima. В production средах важно закреплять версию Docker Engine через pinning в apt/yum-репозиториях, чтобы минорные обновления не меняли дефолтные настройки, например, с cgroups v1 на v2.

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

При установке Docker часто встречаются несколько типичных ошибок. Одна из них — добавление пользователей в группу docker с ожиданием, что это не предоставит root-права, что не соответствует действительности. Другая — обновление Engine в production без предварительного ознакомления с changelog, что может привести к проблемам с переключением cgroup- или storage driver-настроек, что может ломать контейнеры. Также стоит отметить, что по умолчанию в виртуальной машине Docker Desktop выделено всего 2 GB RAM, что может привести к проблемам с использованием памяти (OOM). Установка Docker одновременно через Snap и официальный репозиторий на Ubuntu также может вызвать path-коллизии.

На Linux предпочтительнее использовать download.docker.com вместо дистрибутивных пакетов, чтобы избежать проблем совместимости и устаревания.

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

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