我如何删除Docker的图像?

我有以下图片:

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

我怎样才能删除它们? 为什么会有这样的冲突?


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

docker rmi $(docker images -q)

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

docker rm $(docker ps -a -q)

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

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


可能的原因:原因可能是该图像当前正在由正在运行的容器使用。 在这种情况下,您可以列出正在运行的容器,停止相关容器,然后删除图像:

docker ps
docker stop <containerid>
docker rm <containerid>
docker rmi <imageid>

如果您无法通过docker ps查找容器,则可以使用它列出所有已经退出的容器并将其删除。

docker ps -a | grep 60afe4036d97
docker rm <containerid>

注意:如果使用Volume-Only容器,请小心删除所有已退出的容器。 这些保持Exit状态,但包含有用的数据


出现错误的原因是,尽管图像没有任何标签,但在该图像上仍然存在可能处于exited状态的容器。 因此,您需要确保您已经停止并删除了在这些图像上创建的所有容器。 以下命令可帮助您删除所有未运行的容器:

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`
链接地址: http://www.djcxy.com/p/18241.html

上一篇: How can I delete Docker's images?

下一篇: How to remove old and unused Docker images