问题
今天在使用 sudo docker stop my-nginx 命令时遇到 “Error response from daemon: cannot stop container: my-nginx: permission denied” 错误,这表示在尝试停止 Docker 容器 “my-nginx” 时,Docker Daemon 拒绝了操作
解决
1.AppArmor 可能在进行安全策略控制。
2.系统中可能会残留一些不再需要的 AppArmor 配置文件,执行命令sudo aa-remove-unknown
会自动扫描 AppArmor 配置文件目录,识别并删除 “未知” 的配置文件。
重新执行 docker stop [容器名称/容器ID]
,可以看到可以停止了。
拓展
AppArmor (Application Armor)。 AppArmor 是 Linux 内核的一个安全模块,它通过 强制访问控制 (MAC) 来增强系统的安全性。 与 SELinux 类似,AppArmor 允许系统管理员为应用程序定义安全配置文件 (profiles),限制应用程序可以访问的系统资源 (例如文件、网络、capabilities 等)。