docker的apparmor配置文件在哪里?

时间:2016-09-03 14:41:59

标签: docker debian apparmor

以下问题发生在Debian Jessie(在Vagrant下):

docker documentation声称apparmor配置文件自动放在/etc/apparmor.d/docker中,但是当我列出此目录的内容时,它就找不到了。

/etc/apparmor.d的内容:

abstractions
cache
disable
force-complain
local
tunables

Docker版本信息

$ 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

2 个答案:

答案 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命令,否则我从互联网上提取的大多数容器都不会运行。