【问题标题】:how to physically remove untagged docker images如何物理删除未标记的 docker 图像
【发布时间】:2019-05-02 03:33:42
【问题描述】:

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

【问题讨论】:

    标签: docker


    【解决方案1】:

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

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

    来源:

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

    【讨论】:

    • 我仍然经常看到这样的事情: 5e76bce9b555 2 天前 3.488 GB f4ef5d62dac0 2 天前 3.348 GB 1fb11b87d78e 2 天前2.707 GB 9f4c46af8113 2 天前 386.9 MB 22fcde4c8949 2 天前 16.45 MB c7b84131dd95
    • 你能再具体一点吗? “继续看”是什么意思?如果您添加正在运行的特定命令并通过编辑将输出添加到您的问题,那将是最好的。最好对您运行的命令和顺序非常明确。
    • 当我运行 sudo docker images 时,我看到许多条目,例如: 9f4c46af8113 2 days ago 386.9 MB
    【解决方案2】:

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

    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
    

    【讨论】:

    • 不错,比较完整。移除退出的容器应是保持其清洁的第一步
    • 这应该是答案。
    【解决方案3】:

    如果 John Petrone 解决方案不起作用,请尝试删除那些在运行 docker images 时明确引用 IMAGE ID 的图像。您可以使用一个命令将它们全部删除

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

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

    【讨论】:

      【解决方案4】:

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

      docker system prune -f
      

      【讨论】:

      【解决方案5】:

      您可以通过图像 ID 删除单个图像...

      docker images
      docker rmi <image-id>
      

      【讨论】:

        【解决方案6】:

        此命令也有效

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

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

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

        【讨论】:

          猜你喜欢
          • 2017-09-13
          • 2020-05-09
          • 2022-11-28
          • 2015-06-30
          • 2017-04-18
          • 2017-02-17
          • 1970-01-01
          • 1970-01-01
          • 2015-08-21
          相关资源
          最近更新 更多