如何杀死正在运行的“不可见”容器?

问题描述 投票:0回答:1
我使用 snap 安装了 docker(在 22.04 的安装过程中),它工作正常,并且我所有的容器都使用

docker run ...

 启动

直到我后来使用 apt 安装了

docker-compose

。当我尝试使用 
docker-compose
 启动容器时,我会收到错误消息,指出该端口已在使用中。

然后我检查了哪些程序/命令正在使用这些端口:

sudo lsof -i :9091: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME docker-pr 1883 root 4u IPv4 28696 0t0 TCP *:9091 (LISTEN) docker-pr 1890 root 4u IPv6 27395 0t0 TCP *:9091 (LISTEN)
sudo netstat -pna | grep 9091
tcp        0      0 0.0.0.0:9091            0.0.0.0:*               LISTEN      1883/docker-proxy
tcp6       0      0 :::9091                 :::*                    LISTEN      1890/docker-proxy
这表明我的容器仍在以某种方式运行,因为端口正在使用中。但是,运行时 

docker ps -a

 没有容器在运行...

上面的命令都指向

docker-proxy

,这个服务是什么?另外,为什么 docker 本身甚至无法使用如下命令来停止容器:
docker rm $(docker ps -aq)
?另外,不知道为什么我的容器变得不可见并且无法在不完全停止 docker 服务的情况下停止它。

docker docker-compose apt snap docker-proxy
1个回答
0
投票
就我而言,使用

service docker stop

 停止 docker 并清理 
/var/lib/docker/overlay2
/var/lib/docker/containers
 目录会有所帮助。之后,再次启动docker:
service docker start
.

另外,也许更好的解决方案是通过

apt

 而不是 
snap
 安装 docker - 
https://docs.docker.com/engine/install/ubuntu/#uninstall-old-versions

© www.soinside.com 2019 - 2024. All rights reserved.