Контейнер может работать от UID 0, но это не означает, что у него есть все привилегии root на хосте.
Docker по умолчанию ограничивает права через Linux Capabilities — механизм ядра Linux, который разбивает права суперпользователя на отдельные возможности.
🈂️ Например, контейнер получает только необходимый минимум, а опасные capability вроде SYS_ADMIN, SYS_MODULE или SYS_PTRACE по умолчанию исключаются.
Это снижает риск компрометации хоста, даже если процесс внутри контейнера запущен от имени root.
💡 Проверить список capabilities можно командой:
docker inspect <container> | jq '.[0].HostConfig.CapAdd, .[0].HostConfig.CapDrop'
А при необходимости добавить или убрать capability:
docker run --cap-drop ALL --cap-add NET_BIND_SERVICE nginx
Чем меньше привилегий у контейнера — тем безопаснее окружение.
🔗 Читать подробнее
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера