让apparmor在docker容器上工作

时间:2018-04-14 00:46:28

标签: docker apparmor

我在Ubuntu 16.04上玩apparmor和docker,我可以让它在容器上运行......有时候

Docker版本18.03.0-ce,build 0520e24

$ docker run -it ubuntu bash

按预期运行ubuntu 16.04的docker容器中的结果

$ sudo aa-status

显示docker-default在容器上处于活动状态

并通过bash在容器内运行$ cat /proc/sysrq-trigger会返回预测的“权限被拒绝”,因为默认的docker apparmor配置文件会根据以下指南阻止它:https://cloud.google.com/container-optimized-os/docs/how-to/secure-apparmor#creating_a_custom_security_profile

随后用

$ docker run -it --security-opt apparmor=unconfined ubuntu bash

返回$ sudo aa-status$ cat /proc/sysrq-trigger返回的预期结果 cat: /proc/sysrq-trigger: Input/output error

到目前为止一切都很好,但现在如果我以分离模式运行容器,apparmor配置文件将停止工作(参考:https://docs.docker.com/engine/security/apparmor/#resources-for-writing-profiles

我能够构建apparmor配置文件并看到它以aa-status运行但是当我执行到容器时,没有任何东西被阻止。它对nginx容器不起作用,我尝试过使用其他容器。但是如果我运行处于分离状态$ docker run -d ubuntu tail -f /dev/null,无论我如何申请,它都不会阻止任何事情--security-opt。

任何人都可以解释apparmor如何与docker一起使用以及为什么会出现这种情况?

谢谢!

1 个答案:

答案 0 :(得分:0)

我发现apparmor适用于docker 1.13.1,并且计划在下一个版本中修复bug:docker 18.03.1

参考:https://github.com/moby/moby/pull/36466