我试图杀死我通过docker-compose
. 通过正常停止 (Ctrl+C) 或docker-compose down
我遇到以下错误:
ERROR: for <container-name> cannot stop container: b60c1c4d886899504b...2a022e4d39429dc6ca6e4784afdd: Cannot kill container b60c1c4d886899504b...2a022e4d39429dc6ca6e4784afdd: unknown error after kill: runc did not terminate sucessfully: container_linux.go:388: signaling init process caused "permission denied"
: unknown
我只是在寻找答案WHY。我试图更好地理解 AppArmor,但理解为什么我不能在一切都有助于理解发生了什么之前停止容器。
我看到这是许多人遇到的错误。1 2 3 4
但是,大多数答案都提出了解决方法,但没有解决方案。甚至像1这样的解释性答案也直接深入 AppArmor 和配置文件。从 docker 文档中,我看到 docker 有一个默认的 AppArmor 策略docker-default
。我部分理解了这个概念,但仍然不明白为什么我不能通过用户和我启动它们的环境来停止容器。
如果我试图总结我的问题:
- 我以用户身份启动了一些容器,为什么我不能停止它们。
sudo
也不起作用。那谁能阻止他们呢? - 我是否需要每个容器的 AppArmor 配置文件?
- 我觉得重新启动或禁用 AppArmor 不是一个好主意。我应该这样做吗?什么是理想的解决方案?
欢迎任何反馈或解释。谢谢。