docker 中`--privileged` 和`--cap-add=all` 的区别

Difference between `--privileged` and `--cap-add=all` in docker

背景:我是运行一个docker容器,它需要load/remove一个内核模块,使连接到远程服务器的USB设备在主机上可用,然后我想在容器中可用。

当 运行 容器带有 —-privileged 并为 /lib/modules/dev 绑定安装时有效。

现在我想删除特权模式,只允许最低限度的必要访问。我尝试 —-cap-add=all 作为开始,但这似乎还不够。 —-privileged 还允许什么?

设置特权应该修改:

  • 能力:移除任何能力限制
  • 设备:主机设备将可见
  • seccomp:取消对允许的系统调用的限制
  • apparmor/selinux:政策未应用
  • cgroups:我不认为容器被限制在一个 cgroup 中

这是我的记忆,如果这不能说明您的问题,我可能会在代码中找到更多的信息。