1

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

Docker 版本 18.03.0-ce,构建 0520e24

$ docker run -it ubuntu bash

结果导致 docker 容器按预期运行 ubuntu 16.04

$ sudo aa-status

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

$ cat /proc/sysrq-trigger通过 bash 在容器内运行返回预测的“权限被拒绝”,因为它被 default-docker apparmor 配置文件阻止,按照以下指南:https ://cloud.google.com/container-optimized-os/docs/how-到/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-配置文件

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

谁能解释 apparmor 如何与 docker 一起工作以及为什么会这样?

谢谢!

4

1 回答 1

1

我发现 apparmor 可以与 docker 1.13.1 一起使用,并且计划在下一个版本中修复错误:docker 18.03.1

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

于 2018-04-17T18:45:22.663 回答