docker - 在docker中提交子图像后如何删除父图像?

标签 docker docker-container docker-image

我在我的系统中安装了一个带有大约 1 GB 操作系统的 docker 镜像,然后我更新并安装了其他软件,将大小推到了近 2 GB。我使用这个容器通过 docker commit <cont-id> <child-name> 创建了一个新的子图像.现在我有两个 docker 镜像,父镜像和子镜像总共 3 GB。由于我有一个多余的 1 GB 父镜像,因此我想将其删除。

Parent  image 1 GB
Child   image 2 GB

我试图保留子图像并尝试通过 docker rmi -f <image-id> 删除父图像但它给出了这个错误

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



然后试了this solution , 我试过 sudo docker images --filter "dangling=true" -q --no-trunc但什么也没返回,也试过了 docker system prune其中显示 0 GB。

我还计划将其他程序安装到 docker 内的操作系统中,因此希望从现有的子镜像中生成新的子镜像。我到处搜索,没有很好的解决方案可以删除 docker 中的父镜像,以及我阅读的原因是因为子镜像使用了某些父层。生成新的子镜像后,是否无法删除 docker 中的父镜像?

最佳答案

而不是 docker rmi <image_id>使用 docker rmi <repo:tag>
您可以从 docker images 的输出中获取 repo 和标签。

@atline 的答案是答案的理论部分。这里提到的是删除相同基础镜像的先前版本的方法,因为不会删除/影响子(或较低层)

学分:https://stackoverflow.com/a/50650745/5711056

关于docker - 在docker中提交子图像后如何删除父图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52547749/

相关文章:

gradle - 覆盖 DockerStartContainer 上的环境变量

linux - Docker 卷选项将文件夹创建为 "root"用户

docker-container - Docker 在现有镜像上提交

PHP-FPM Alpine Docker Image 7.4 安装 PHP 8.0 版本

docker - 我们可以使用.tar或zip归档文件构建docker镜像吗

amazon-web-services - 安装了 aws cli v2 的 AWS CodeBuild nodejs 图像

windows - 将 MongoDB 与 Docker 卷一起使用时,数据不会保存在数据库中吗?

docker - 在Docker上使用fluentd日志记录驱动程序时的副作用

maven - 如何使用dockerfile中的Maven创建和运行Docker镜像

architecture - 如何在 Kubernetes pod 中组织容器 "horizontally"?