我有以下图片:

alex@alexvps:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>              <none>              70c0e19168cf        5 days ago          1.069 GB
<none>              <none>              c2ce80b62174        8 days ago          399.2 MB
<none>              <none>              60afe4036d97        8 days ago          325.1 MB

当我试图删除其中一个时,我会得到:

alex@alexvps:~$ sudo docker rmi 60afe4036d97
Error: Conflict, 60afe4036d97 wasn't deleted
2014/01/28 00:54:00 Error: failed to remove one or more images

我该如何移除它们?为什么会有这样的冲突?


当前回答

首先,使用以下命令删除所有容器

sudo docker ps -a -q | xargs -n 1 -I {} sudo docker rm {}

然后,使用以下命令根据映像的ID删除映像

sudo docker rmi <image-id>

其他回答

要删除所有图像,请使用给定的命令

docker rmi $(docker images -q)

要删除所有容器,请使用给定的命令

docker rm $(docker ps -a -q)

警告:这将破坏你所有的图像和容器。这是不可能恢复的!

该解决方案由Techoverflow.net提供。

出现错误的原因是,即使图像没有任何标记,仍然存在在该图像上创建的容器,该容器可能处于退出状态。因此,您需要确保已经停止并删除了在这些映像上创建的所有容器。使用实例删除所有未运行的容器:

docker rm `docker ps -aq --no-trunc --filter "status=exited"`

现在这删除了所有悬空非中间<none>图像:

docker rmi `docker images --filter 'dangling=true' -q --no-trunc`

停止所有正在运行的容器: Docker stop ' Docker ps -q '

要删除一些Docker镜像,必须执行以下命令:

$ docker rmi <docker_image_id>

因此,要删除所有Docker映像,可以执行以下命令:

$ docker rmi $(docker images -q)

现在,如果你想删除所有的Docker映像(包括正在使用的映像),你可以添加标记-f,例如:

$ docker rmi -f $(docker images -q)

我已经找到了一个解决方案与Powershell脚本,这将为我。

该脚本首先停止所有容器,然后删除所有容器,然后删除由用户命名的图像。

看这里http://www.devcode4.com/article/powershell-remove-docker-containers-and-images

移除所有容器

docker ps -q -a | xargs docker rm

强制删除所有Docker映像

docker rmi -f $(docker images -f dangling=true -q)