当我运行sudo docker rmi me / myimage这样的命令时,我得到了响应...图像没有标记,但是,当我重新运行sudo docker图像时,我可以看到这个"未标记的"图像仍然存在,如果我运行df -h,我可以看到实际文件仍然存在并占用文件系统空间。 我可以使用什么命令或程序来物理删除不需要的图像?
答案 0 :(得分:34)
您应该能够使用"dangling=true"
标志删除未标记的Docker镜像:
sudo docker rmi $(sudo docker images -f "dangling=true" -q)
源:
https://docs.docker.com/engine/reference/commandline/images/
答案 1 :(得分:19)
首先,您需要删除已退出的容器,然后删除悬空图像。
docker rm $(docker ps -q -f status=exited)
docker rmi $(docker images -q -f dangling=true)
毕竟,我创建了以下脚本〜/ 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
答案 2 :(得分:1)
如果John Petrone解决方案不起作用,请尝试删除那些明确提及运行IMAGE ID
时看到的docker images
的图片。您可以使用一个命令
for i in
sudo docker图片| grep \ | awk' {print $ 3}' ; do sudo docker rmi $i; done
答案 3 :(得分:0)
您可以按照图片ID ...
删除单张图片docker images
docker rmi <image-id>
答案 4 :(得分:0)
此命令也可以使用
docker rmi $(docker images | grep "^<none>" | awk '{print $3}')
强制删除图像以放弃可能正在使用图像的已停止的容器
docker rmi -f $(docker images | grep "^<none>" | awk '{print $3}')
答案 5 :(得分:0)
此命令将从docker中删除所有悬空的图像和容器。
docker system prune -f