以下问题发生在Debian Jessie(在Vagrant下):
docker documentation声称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
答案 0 :(得分:1)
从 this GitHub discussion 我了解到自 Docker v1.13 以来,apparmor 配置文件不再显式存储:
<块引用>在 Docker 1.13 之前,它将 AppArmor Profile 存储在 /etc/apparmor.d/docker-default(在 Docker 启动时被覆盖,因此用户无法修改它。Docker 开发人员添加了 --security-opt 到让用户指定配置文件。在 v1.13 之后,Docker 现在在 tmpfs 中生成 docker-default,使用 apparmor_parser 将其加载到内核中,然后删除该文件。所有 AppArmor 实用程序(Ubuntu 上的 aa-*)都需要一个文件参数,和 /sys/kernel/security/apparmor/policy/profiles/* 只有缓存的二进制文件。
答案 1 :(得分:0)
最接近的我可以想到,较新版本的docker似乎需要一个容器来拥有apparmor安全配置文件。这意味着除非我将--security-opt apparmor=unconfined
添加到docker run
命令,否则我从互联网上提取的大多数容器都不会运行。