Rootless контейнеры: изоляция без root и рисков

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

dockerrootlessбезопасность

👁 Большинство запускает Docker от root и даже не задумывается, что любой пробой в контейнере = доступ к хосту. В проде это жирный риск. Rootless режим позволяет запускать контейнеры вообще без root, снижая blast radius даже при компрометации.

📝 Конфигурация rootless режима для запуска контейнеров

Docker умеет работать полностью в user-space, используя user namespaces. Контейнер внутри думает, что он root, но на хосте это обычный пользователь.

dockerd-rootless-setuptool.sh install
export DOCKER_HOST=unix:///run/user/1000/docker.sock
docker run -d nginx

📌 В таком режиме даже если контейнер «вырвется», у него не будет прав на хосте.

📝 Ограничение привилегий и capabilities контейнера

Дополнительно можно убрать лишние capabilities, чтобы контейнер не мог делать ничего лишнего даже внутри своей песочницы.

docker run -d \
  --cap-drop=ALL \
  --security-opt=no-new-privileges \
  nginx

📌 Это отключает эскалацию привилегий и сильно сужает поверхность атаки.

❗️ Rootless Docker — это не «паранойя», а нормальная практика для продакшена. Если контейнер у тебя работает от root — ты просто надеешься, что его никогда не взломают.

tags: #docker #безопасность #разработка

🧭 @recura_tech 🌐 VK 🌐 MAX

Терминал с кодом для настройки rootless Docker: dockerd-rootless-setuptool.sh, export DOCKER_HOST, docker run и пример --cap-drop
Пример команд для установки и запуска rootless Docker и отключения capabilities.

Читайте так же