我在 20.04 机器上使用从 snap 安装的 docker 19.03.13。很长时间以来,一切都运行良好,但现在我无法停止以非特权用户身份启动的容器。以 root 身份停止也不可能。
如果我尝试停止容器,则会打印出以下错误消息:
$ docker container stop p3e
Error response from daemon: cannot stop container: p3e: Cannot kill container 03e287d: unknown error after kill: runc did not terminate sucessfully: container_linux.go:392: signaling init process caused "permission denied"
: unknown
经过一段时间的调试,我找到了apparmor
根本原因。发送TERM
将runc
被 apparmor 拒绝。
[77212.968533] audit: type=1400 audit(1614332881.638:148): apparmor="DENIED" operation="signal" profile="docker-default" pid=243676 comm="runc" requested_mask="receive" denied_mask="receive" signal=kill peer="snap.docker.dockerd"
我找到了相应的配置文件,/var/lib/snapd/apparmor/profiles/snap.docker.dockerd
但我想说我的 apparmor 技能目前受到限制。
现在我的问题是。我怎样才能摆脱拒绝我的停止操作?我只对修复配置文件感兴趣。停用 apparmor 不是一个选项!