如何停止未知的正在运行的Docker容器

时间:2019-03-01 19:18:07

标签: docker containers

我在Mac上安装了docker,当我docker info看到以下信息:

Containers: 9
 Running: 8
 Paused: 0
 Stopped: 1
Images: 5

但是,当我运行docker container ls -adocker ps -a时,那里什么也没有运行。

执行此操作时,我可以看到5张正在运行的图像:docker images -a

REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
k8s.gcr.io/kube-apiserver-amd64            v1.10.11            e851a7aeb6e8        3 months ago        228MB
k8s.gcr.io/kube-controller-manager-amd64   v1.10.11            978cfa2028bf        3 months ago        151MB
k8s.gcr.io/kube-scheduler-amd64            v1.10.11            d2c751d562c6        3 months ago        51.2MB
k8s.gcr.io/etcd-amd64                      3.1.12              52920ad46f5b        11 months ago       193MB
k8s.gcr.io/pause-amd64                     3.1                 da86e6ba6ca1        14 months ago       742kB

但是我无法删除它们。

我尝试这样做:docker rmi <image_id>甚至这样:docker rmi $(docker images -aq)

都给出了这样的错误:

Error response from daemon: conflict: unable to delete <image_id> (cannot be forced) - image is being used by running container <container_id>

当我尝试杀死这些“正在运行的”容器ID之一时,例如:docker kill <container_id>,我收到错误消息:

Error response from daemon: Cannot kill container: <container_id>: Container <long_container_id> is not running

或者,如果我做docker stop <container_id>,那么我只是拿回容器ID,这意味着容器已经停止了吗?但是即使在那之后,尝试删除图像,也会出现相同的错误。

那么,如何摆脱这些正在运行的“幽灵”容器和图像?

1 个答案:

答案 0 :(得分:0)

如果您不需要该容器,则可以使用与删除图像相同的方式删除该容器

docker rm <container_id>

那之后您应该有更好的运气来删除图像

docker rmi <image_id> 

或者您必须删除所有图像

docker rmi $(docker images -qa)