如何物理删除未加标签的docker图像

当我运行诸如sudo docker rmi me / myimage这样的命令时,我得到了没有标记的responce …图像,但是当我重新运行sudo docker图像时,我可以看到这个“untagged”图像仍然存在,而且,如果我运行df -h我可以看到实际的文件仍然存在并占用文件系统空间。 我可以使用什么命令或程序来物理删除不需要的图像?

您应该能够使用"dangling=true"标志删除未标记的Docker镜像:

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

资源:

https://docs.docker.com/engine/reference/commandline/images/

首先,您需要删除已退出的容器,然后移除悬挂的图像。

 docker rm $(docker ps -q -f status=exited) docker rmi $(docker images -q -f dangling=true) 

毕竟,我创build了下面的脚本作为〜/ bin / dclean并且一直在使用它。

 #!/bin/sh processes=`docker ps -q -f status=exited` if [ -n "$processes" ]; then docker rm $processes fi images=`docker images -q -f dangling=true` if [ -n "$images" ]; then docker rmi $images fi 

如果John Petrone解决scheme无法正常工作,请尝试删除这些图像,并明确指出在运行docker images时看到的IMAGE ID 。 您可以使用一个命令删除所有这些

for i in sudodocker的图像| grep \ | awk'{print $ 3}' ; do sudo docker rmi $i; done ; do sudo docker rmi $i; done

PD:我不认识John Petrone的答案。 它与Docker 1.4.1很好地工作

你可以删除单个图像的图像ID …

 docker images docker rmi <image-id>