【问题标题】:How to delete images on disk for Docker mac?如何为 Docker mac 删除磁盘上的图像?
【发布时间】:2018-06-14 17:00:32
【问题描述】:

我看到很多关于删除“悬空/未使用”的 Docker 映像和容器的信息,但是如何删除未作为我使用 docker-compose -f my- 下载的容器运行的映像撰写文件.yaml?

当我执行 'docker system prune',然后再次运行 docker-compose 时,我收到图像已经存在的消息。我正在尝试从我的系统中删除之前使用“docker-compose”下载的所有现有图像。

【问题讨论】:

    标签: macos docker docker-for-mac


    【解决方案1】:

    查看this 发帖。它会给你一个关于如何处理图像的好主意。 或者简而言之:

    docker rmi $(docker images -aq)
    

    【讨论】:

    • 这个似乎可以工作,但是在我执行这个命令然后执行 'docker-compose -f my-compose-file.yaml up' 之后,控制台中有消息说“从 ae79f2514705: already exists, 5ad56d5fc149: already exists..." 等等。如果我用命令删除它们为什么会检测到这些图像已经存在?
    • 太好了,我能帮上忙!尝试在第一个之后运行:docker rm $(docker ps -aq) -f。这应该会清理更多,并且可能已经解决了这种行为。
    • 是的,这些命令都不能满足我的要求。就像我在上一篇文章中所说,当运行 'docker-compose -f up 时,docker 检测到图像仍然存在。控制台显示“5ad56d5fc149:已经存在”
    • 可能是因为之前的 docker rm 命令在镜像上没有成功。它会抱怨“来自守护进程的错误响应:冲突:无法删除存储库引用“xxx”(必须强制)-容器 b59819d8837c 正在使用其引用的图像 8d0f2b719930”
    【解决方案2】:

    docs中对docker system prune的描述很简短

    删除未使用的数据

    您可以尝试运行docker system prune --all,根据docs 删除所有未使用的图像,--all 标志的选项

    --all , -a 删除所有未使用的图像,而不仅仅是悬挂的图像

    您也可以尝试使用docker image prune --all,它用于仅删除未使用的图像,更多信息请参见this

    【讨论】:

    • 这似乎不起作用。在运行所有这些命令(包括 @heldic 建议)后,“docker-compose up”仍在检测图像已经存在。
    【解决方案3】:

    我是 Docker 新手,还在学习它。为什么不尝试 docker image prune -a 来删除未被任何容器引用的未使用图像,详情请参阅 this 。虽然我认为你的 docker system prune 应该可以工作。

    【讨论】:

      【解决方案4】:

      您可以使用以下命令清理 docker 工件(取决于您需要清理的内容):

      docker container prune
      docker image prune
      docker network prune
      docker volume prune
      

      这些命令支持 '-a' 选项,如果指定将删除所有工件(例如 docker container prune -a 将删除所有容器)

      如果您需要清理您可能想要使用的所有内容:

      docker system prune -a
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-18
        • 2020-09-06
        • 2011-10-31
        • 2019-09-06
        • 2021-04-20
        • 2018-11-21
        相关资源
        最近更新 更多