我如何删除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