Как описано David Maze и Согласно докеру docs: привилегии времени выполнения и возможности Linux
По умолчанию контейнеры Docker являются «непривилегированными»и не может, например, запустить демон Docker внутри контейнера Docker. Это связано с тем, что по умолчанию контейнеру не разрешен доступ к каким-либо устройствам, а «привилегированному» контейнеру предоставляется доступ ко всем устройствам (см. Документацию по устройствам cgroups).
--cap-add: Add Linux capabilities,
--cap-drop: Drop Linux capabilities,
--privileged=false: Give extended privileges to this container
--device=[]: Allows you to run devices inside the container without the --privileged flag.
Когда оператор выполняет docker run --privileged
, Docker разрешит доступ ко всем устройствам на хосте, а также установит некоторую конфигурацию в AppArmor или SELinux, чтобы позволить контейнеру практически такой же доступ к хосту, как процессам, выполняющимся вне контейнеров на хосте.
В дополнение к --privileged оператор может точно контролировать возможности, используя --cap-add и --cap-drop.
Вы можете найти там два вида возможностей:
- Докер со списком сохраненных по умолчанию возможностей.
- возможности, которые не предоставлены по умолчаниюи могут быть добавлены.
Эта команда docker run --cap-add=NET_ADMIN
будет применять дополнительные возможности linux.
Согласно документации:
Для взаимодействия с сетевым стекомвместо использования --privileged они должны использовать --cap-add = NET_ADMIN для изменения сетевых интерфейсов.
Примечание :
Чтобы уменьшить атаки системного вызоваХорошей практикой является предоставление контейнеру только необходимых привилегий. Пожалуйста, обратитесь также к Включение политик безопасности Pod .
Из контейнера это может быть достигнуто с помощью:
securityContext:
capabilities:
drop: ["all"]
add: ["NET_BIND"]
Для просмотра примененных возможностей внутри вашего контейнера вы можете использовать:getpcaps process_id or $(pgrep your-proces_name)
для просмотра и изучения возможностей Linux, которые вы используете capsh --print
Ресурсы :
Надеюсь, эта помощь.