Rootless Docker

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

В rootless-режиме демон Docker и контейнеры запускаются внутри непривилегированного user namespace, поэтому пробой контейнера выводит злоумышленника в обычного пользователя, а не в root хоста. Установка — dockerd-rootless-setuptool.sh install, далее переключите контекст на пользовательский сокет. Частые ошибки: порты ниже 1024 требуют setcap на rootlesskit; для overlayfs нужно свежее ядро; cgroups v2 обязательны для лимитов ресурсов; некоторые сетевые режимы (host, macvlan) ограничены. Базовое использование такое же, как у rootful Docker; продвинутый уровень — slirp4netns, fuse-overlayfs и Podman для паритета.

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

Rootless Docker на Linux — рекомендуемый путь: Docker Engine + containerd работают нативно без VM. На macOS и Windows Docker Desktop крутит Linux VM под капотом (HyperKit/WSL2) и даёт тот же CLI. Rootless-режим запускает daemon под не-root пользователем, сужая поверхность атаки (но с особенностями сети). Группа docker на Linux функционально эквивалентна root — любой в ней может монтировать ФС хоста.

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

Docker Desktop — для разработки на ноуте; ставьте Docker Engine напрямую на production Linux-хосты. Для RF/CI-сред, где Docker Desktop licensing нежелателен, подходят OrbStack (macOS), Rancher Desktop, Podman Desktop или Engine внутри Lima. Закрепляйте версию Engine в production через pinning в apt/yum-репозиториях — minor-версии иногда меняют дефолты (например cgroups v1 → v2).

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

Ловушки Rootless Docker: добавление пользователей в группу docker в надежде, что это не root (это root); обновление Engine в production без чтения changelog (cgroup/storage driver-переключения ломают контейнеры); 2 GB RAM по умолчанию в VM Docker Desktop (сборки уходят в OOM); установка Docker одновременно через Snap и официальный репо на Ubuntu (path-коллизии). На Linux предпочитайте download.docker.com дистрибутивным пакетам.

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

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