来自守护进程的错误响应:无法杀死容器:权限被拒绝,如何在Ubuntu 20.04上杀死docker容器



我试图杀死一个docker容器,但我被拒绝了权限。我使用Ubuntu 20.04,客户端的docker版本是20.10.7,服务器的版本是20.10.11。

这是我得到的日志:

Error response from daemon: Cannot kill container: fastapi_server: permission denied

我读到我应该使用这个命令来重新启动docker。

sudo systemctl restart docker.socket docker.service

但问题是,当我执行这个命令时,我所有的容器和映像都会消失,但如果我在localhost:8000上尝试,我的端口会被我想要删除的容器占用。如果我运行sudo netstat -anp | grep 8000,我得到:

tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN    2493/docker-proxy   
tcp6       0      0 :::8000                 :::*                    LISTEN    2500/docker-proxy 

因此,这确认了我的端口已经被docker容器占用,但当我运行docker ps -a时,我没有得到任何容器。我也尝试过docker kill,但它不起作用。

我应该如何杀死这个容器&我的8000端口免费吗?

在这些情况下对我有效的方法:

sudo systemctl restart docker.socket docker.service
sudo docker image rm -f $(sudo docker image ls -q)

删除AppArmor之前请三思。据我所知,这是应用程序安全的核心,例如在最近的主要Ubuntu版本上。

权限问题似乎是Docker版本特有的。假设您的Docker也是通过snap安装的,请尝试将Docker版本升级到至少当前的测试版,例如使用

snap refresh docker --beta

20.10.12似乎运行良好。

(事实上,我接受了这个建议,并删除了我的AppArmor-快照消失了。然后尽快重新安装,相关快照的设置仍在我身边-之后安装了docker,出现了问题,升级了它:似乎很有魅力。(

我似乎已经安装了带有snap的docker,并使用了docker存储库:

sudo snap list

因此:

sudo snap remove docker --purge
sudo aa-remove-unknown

使用这里描述的方法重新安装Docker解决了我的问题!无需禁用或删除apparmor。

尝试以下步骤:

docker inspect

找到PID并终止该进程。

如果不起作用,请使用进行检查

dmesg

与Docker有关的一切。你可以把输出放在这里,我们可以帮助你。

好的,从你的png列表看来你对AppArmor有问题。试试这个:

sudo apt purge --auto-remove apparmor
sudo service docker restart
docker system prune --all --volumes

我从snap安装了Docker,并遇到了拒绝权限的错误响应。在阅读了许多用户对appermor建议的更多问题后,我从snap中卸载了Docker,然后使用了digitalocean的Docker安装教程。

这对我很有效,在这里发帖作为其他遇到同样问题的人的参考。

在我的情况下,它也是从Bionic升级后在Ubuntu 20.04上出现的。通过运行dmesg,我得到了错误消息:

[1113458.482007] audit: type=1400 audit(1672134271.112:1718): apparmor="DENIED" operation="signal" profile="docker-default" pid=1654 comm="dockerd" requested_mask="receive" denied_mask="receive" signal=kill peer="snap.docker.dockerd

要修复此问题,请编辑/etc/appermor.d/docker并在开头添加以下行(但是,在"profile docker default……{"之后(:

signal,

然后重新加载设备

sudo systemctl reload apparmor

这至少在我的电脑上修复了它。

查看更多https://manpages.ubuntu.com/manpages/xenial/man5/apparmor.d.5.html区间下信号:

Example AppArmor signal rules:
# Allow all signal access
signal,

相关内容

  • 没有找到相关文章

最新更新