如何物理删除未标记的泊坞窗图像

时间:2015-02-07 01:18:23

标签: docker

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

6 个答案:

答案 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

PD:我不知道John Petrone的回答。它适用于Docker 1.4.1

答案 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