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

问题描述 投票:17回答:6

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

docker
6个回答
34
投票

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

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

资源:

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


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

1
投票

如果John Petrone解决方案不起作用,请尝试删除那些明确指出运行IMAGE ID时看到的docker images的图像。您可以使用一个命令删除所有这些

for i insudo码头图片| grep \ | awk'{print $ 3}'; do sudo docker rmi $i; done

PD:我不知道John Petrone的回答。它与Docker 1.4.1很好地配合使用


0
投票

您可以按图片ID删除单张图片...

docker images
docker rmi <image-id>

0
投票

这个命令也有效

docker rmi $(docker images | grep "^<none>" | awk '{print $3}')

强制删除图像以放弃可能正在使用图像的已停止的容器

docker rmi -f $(docker images | grep "^<none>" | awk '{print $3}')

0
投票

此命令将从docker中删除所有悬空图像和容器。

docker system prune -f
© www.soinside.com 2019 - 2024. All rights reserved.