gpt4 book ai didi

docker - 删除具有依赖子镜像的 docker 镜像

转载 作者:行者123 更新时间:2023-12-02 04:52:00 55 4
gpt4 key购买 nike

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

Error response from daemon: conflict: unable to delete 47bcc53f74dc (cannot be forced) - image has dependent child images

我通过 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 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 - 删除具有依赖子镜像的 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40012193/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com