【问题标题】:Remove docker image which has dependent children images删除具有依赖子图像的 docker 图像
【发布时间】:2017-02-22 01:23:12
【问题描述】:

我想删除 docker 图像,但遇到如下错误消息:

来自守护进程的错误响应:冲突:无法删除 47bcc53f74dc (不能强制)- 图像有依赖的子图像

我通过docker stop $(docker ps -a -q) 命令停止所有容器。之后,我通过docker rmi $(docker images | grep "busybox" | awk '{print $3}') 命令删除所有 busybox 图像。我遇到了上面的错误消息。

我显示docker images | grep busybox 并获得如下信息:

busybox             1                   47bcc53f74dc        6 months ago        1.113 MB
busybox             1-uclibc            47bcc53f74dc        6 months ago        1.113 MB
busybox             1.24                47bcc53f74dc        6 months ago        1.113 MB
busybox             1.24-uclibc         47bcc53f74dc        6 months ago        1.113 MB
busybox             1.24.2              47bcc53f74dc        6 months ago        1.113 MB
busybox             1.24.2-uclibc       47bcc53f74dc        6 months ago        1.113 MB
busybox             uclibc              47bcc53f74dc        6 months ago        1.113 MB

如何删除 busybox 图片?感谢您的任何建议。

【问题讨论】:

    标签: docker docker-image


    【解决方案1】:

    警告提示您某些容器仍链接(继承)您要删除的容器的 docker FS 层。如果不基于这些层重新创建子映像,则无法删除中间 docker 文件系统层。

    说,你有这样的配置:

    base_layer_A -> base_layer_B
               \        \_ child_layer_D
                \__ container C
    

    ...愿意删除容器 C 和层 A。

    您不能这样做(因为 B 层基于 A 层)。这是您问题的最可能原因

    PS:docker images -a 可能会给你一些启发(不太可能)。曾经有一个“-tree”开关可以帮助解决这种情况,但不幸的是它现在消失了


    这是清理废弃 docker 容器和已弃用的镜像层的直接而粗暴的方法

    #!/usr/bin/env bash
    set -euo pipefail
    
    for c in $(docker ps -a -f status=exited -f status=created -f status=dead --format="{{.ID}}"); do
        docker rm $c
    done
    for img in $(docker images -f dangling=true --format="{{.ID}}"); do
        docker rmi $img
    done
    

    【讨论】:

    • 哦,我试过你的命令。是否有解决方案找到相关图像并手动删除它们?谢谢
    • 有一些简单的方法可以删除与任何东西无关的图像层(只需使用几个匹配“无”标签的命令即可完成)。至于显示 docker 图像层树 - 有一个命令可以渲染这样的('--tree',正如我已经提到的),它已被删除,不幸的是,我没有意识到这一点。想现在……自己喜欢
    • 您可以开始分析 docker 容器运行/启用(使用 docker ps -a,然后杀死那些/下树
    • 你的命令确实删除了孤立层,但它并没有解决问题(rmi -f 由于依赖图像仍然返回失败)
    猜你喜欢
    • 2016-11-02
    • 2019-10-24
    • 2017-07-03
    • 2019-03-04
    • 2019-10-06
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多