我有一个运行 docker 的 ubuntu 20.04 服务器。最近,默认的 apparmor 配置文件似乎开始对 docker 容器中的挂载点实施限制。因此容器直接写入根文件系统而不是挂载。
在 docker 之外,我可以毫无问题地导航挂载,但在容器中执行 shell 时,就好像挂载点未挂载一样。
我已将其范围缩小为由 apparmor 引起的,并且禁用 apparmor 允许安装,一切都按我的预期进行。容器似乎正在使用 docker-default 配置文件。
我的问题是:如何在全局或单个容器上启用 Docker 容器中的安装。我宁愿不必完全禁用 apparmor 来解决此问题?
答案1
所以事实证明我的问题实际上是 Docker 在安装文件系统之前启动的。我相信我可以更改 docker 的 systemd 文件来延迟启动,直到我的安装就位。容器作为目录绑定到挂载点并直接写入根文件系统。
顺便说一句,您可以使用 security_opt 选项更改用于容器的 apparmor 配置文件,并使用 apparmor-parser 加载新的配置文件。我的容器没有安装座,但如果安装座已经就位,它们也不需要它。