2

我试图杀死我通过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 不是一个好主意。我应该这样做吗?什么是理想的解决方案?

欢迎任何反馈或解释。谢谢。

4

1 回答 1

1

我找不到确切的原因,但接近了。我的 Ubuntu 19.10 上似乎存在冲突的 docker 安装,这导致了这个访问控制问题。

如此处所述,我已删除 snap 安装。由于我已经有另一个安装,我不必通过其他方式安装它。

sudo snap remove docker
于 2020-03-24T12:37:12.497 回答