以下问题发生在 Debian Jessie(在 Vagrant 下):
docker文档声称apparmor配置文件会自动放置在
/etc/apparmor.d/docker
中,但是当我列出该目录的内容时,却找不到它。
/etc/apparmor.d
的内容:abstractions
cache
disable
force-complain
local
tunables
$ docker version
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:02:53 2016
OS/Arch: linux/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 05:02:53 2016
OS/Arch: linux/amd64
从这个 GitHub 讨论我了解到,自 Docker v1.13 以来,apparmor 配置文件不再显式存储:
在 Docker 1.13 之前,它将 AppArmor 配置文件存储在 /etc/apparmor.d/docker-default 中(Docker 启动时会覆盖该配置文件,因此用户无法修改它。Docker 开发人员添加了 --security-opt 来让用户在 v1.13 之后,Docker 现在在 tmpfs 中生成 docker-default,使用 apparmor_parser 将其加载到内核中,然后删除所有需要文件参数的 AppArmor utils(在 Ubuntu 上为 aa-*)和 /。 sys/kernel/security/apparmor/policy/profiles/* 仅具有缓存的二进制文件。
对 StackOverflow 将我的数据出售给 AI 不感兴趣。