Почему root в Docker — это не полноценный root
Контейнер может запускаться с 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Чем меньше привилегий у контейнера, тем безопаснее среда.