由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为<none>的镜像。这类无标签镜像也被称为虚悬镜像(dangling image) 。

# docker image ls -f dangling=true
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              00285df0df87        5 days ago          342 MB

一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除。

# docker image prune

为了加速镜像构建、重复利用资源,Docker会利用中间层镜像。所以在使用一段时间后,可能会看到一些依赖的中间层镜像。

这些中间层镜像是其它镜像所依赖的镜像,中间层镜像不应该删除,否则会导致上层镜像因为依赖丢失而出错。实际上,这些镜像也没必要删除,因为相同的层只会存一遍,而这些镜像是别的镜像的依赖,因此并不会因为它们被列出来而多存一份,无论如何你也会需要它们。只要删除那些依赖它们的镜像后,这些依赖的中间层镜像也会被连带删除。

如果实在想删除这些中间层镜像且不想影响依赖它们的镜像,可以按照下面这么做。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins             latest              369817e36fc5        22 hours ago        1.24GB
nginx               latest              8b0a86bf5764        24 hours ago        418MB
centos              latest              0f3e07c0138f        2 weeks ago         220MB# docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              64494614f22b        22 hours ago        1.24GB
<none>              <none>              7ac19a9cd510        22 hours ago        1.24GB
<none>              <none>              fc2251321ab5        22 hours ago        1.24GB
<none>              <none>              63d2cbb95230        22 hours ago        1.24GB
jenkins             latest              369817e36fc5        22 hours ago        1.24GB
<none>              <none>              6ed44c1bb8da        22 hours ago        1.24GB
<none>              <none>              caff29bcf1e2        22 hours ago        1.24GB
<none>              <none>              4e84b30eda89        22 hours ago        694MB
<none>              <none>              47aa632b5427        22 hours ago        616MB
<none>              <none>              de63e9ae754a        24 hours ago        418MB
nginx               latest              8b0a86bf5764        24 hours ago        418MB
<none>              <none>              bdb2c14e7f0b        24 hours ago        418MB
<none>              <none>              ca8b12c4da26        24 hours ago        418MB
<none>              <none>              4a69b2a70168        24 hours ago        418MB
<none>              <none>              a5d099eb709f        45 hours ago        220MB
centos              latest              0f3e07c0138f        2 weeks ago         220MB

除了有效的三个镜像外,其余全部都是中间层镜像。

# docker rmi 63d2cbb95230
Error response from daemon: conflict: unable to delete 63d2cbb95230 (cannot be forced) - image has dependent child images# docker rmi -f 63d2cbb95230
Error response from daemon: conflict: unable to delete 63d2cbb95230 (cannot be forced) - image has dependent child images# docker rmi -f a5d099eb709f
Error response from daemon: conflict: unable to delete a5d099eb709f (cannot be forced) - image has dependent child images# docker rmi -f 64494614f22b
Error response from daemon: conflict: unable to delete 64494614f22b (cannot be forced) - image has dependent child images

即使加上-f参数也无法删除,这是因为这些中间层镜像有依赖它们的镜像,也就是jenkins:latestnginx:latest

# docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=fc)
[jenkins:latest] sha256:369817e36fc5250dcc15b320dae5fde9da2caa0d28262458f98d96550b6ccb6b sha256:7ac19a9cd5108d532d4f8e29289cd3bd61721a9c52f4a5ad9271a4aa372a6505# docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=4e)
[jenkins:latest] sha256:369817e36fc5250dcc15b320dae5fde9da2caa0d28262458f98d96550b6ccb6b sha256:7ac19a9cd5108d532d4f8e29289cd3bd61721a9c52f4a5ad9271a4aa372a6505# docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=47)
[jenkins:latest] sha256:369817e36fc5250dcc15b320dae5fde9da2caa0d28262458f98d96550b6ccb6b sha256:7ac19a9cd5108d532d4f8e29289cd3bd61721a9c52f4a5ad9271a4aa372a6505

slice=后面跟中间层镜像的id可以查看哪些镜像依赖于这些中间层镜像。

# docker save -o /docker/jenkins.tar jenkins:latest# docker save -o /docker/nginx.tar nginx:latest# ls /docker
jenkins.tar  nginx.tar# docker rmi jenkins:latest# docker rmi nginx:latest# docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              0f3e07c0138f        2 weeks ago         220MB

可以看到,在删除依赖于中间层镜像的镜像时,中间层镜像也被跟着删除了。接着导入原来依赖于中间层镜像的镜像即可。

# docker load < /docker/jenkins.tar
fa0b0907a72e: Loading layer [==================================================>]  397.8MB/397.8MB
24878c480cae: Loading layer [==================================================>]  78.25MB/78.25MB
156c821fe3b0: Loading layer [==================================================>]    553MB/553MB
Loaded image: jenkins:latest# docker load < /docker/nginx.tar
b21caef323db: Loading layer [==================================================>]  208.8MB/208.8MB
4d1228e0ab7c: Loading layer [==================================================>]  5.632kB/5.632kB
Loaded image: nginx:latest# docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins             latest              369817e36fc5        22 hours ago        1.24GB
nginx               latest              8b0a86bf5764        24 hours ago        418MB
centos              latest              0f3e07c0138f        2 weeks ago         220MB

无效镜像问题image has dependent child images相关推荐

  1. Docker下删除镜像报错 (cannot be forced) - image has dependent child images

    记录一次docker删除镜像报错: docker rmi 镜像Id 报错: Error response from daemon: conflict: unable to delete ae9561a ...

  2. 删除docker-register的镜像 none无效镜像讲解

    背景介绍 在服务器上搭建了docker registry,所有的构建镜像都会集中在一个服务器上,久而久之硬盘就被塞满了.本文会着重介绍两种清理方式.一是<none>标签的镜像,二是删除do ...

  3. Error response from daemon: conflict: unable to delete image has dependent child images

    Error response from daemon: conflict: unable to delete f6d0b4767a6c (cannot be forced) - image has d ...

  4. 如何解决 image has dependent child images 错误

    文章为转载:原地址http://www.ibloger.net/article/3217.html 感谢<程序喵>,方法很管用,所以转载供需~~~ 问题 在 Docker 中删除 imag ...

  5. image has dependent child images 错误解决

    在 Docker 中删除 image 时有时会遇到类似 Error response from daemon: conflict: unable to delete 6ec9a5a0fc9f (can ...

  6. docker配置阿里云镜像加速并更改镜像和容器的存储位置及常见的docker bug解决方法

    配置阿里云镜像加速 使用docker容器管理服务,总结下来就三个重要概念: 镜像,容器,数据卷.在之前的博文中我们已经讲述了如何在linux服务器上安装docker,并运行docker服务了. 这篇文 ...

  7. docker desktop ubuntu镜像_原创 | Docker入门,看了不理解,假一赔命

    写在前面 这篇博客适合谁? 对于Docker并不了解,只是有一点模糊的感觉,觉得Docker可以当成虚拟机用之类的 只是下载了Docker软件,对于怎么配置,怎么玩,第一步干什么,完全一无所知 其二, ...

  8. Docker强制删除镜像

    场景 在服务器上使用Docker打包成容器来跑服务时,应为磁盘原因要删除不要或者异常的镜像. 删除 查看所以的镜像 docker images -a REPOSITORY TAG IMAGE ID C ...

  9. docker desktop镜像_Docker简单入门

    这篇文章适合谁? 对于Docker并不了解,只是有一点模糊的感觉,觉得Docker可以当成虚拟机用之类的 只是下载了Docker软件,对于怎么配置,怎么玩,第一步干什么,完全一无所知 其二,我从对Do ...

  10. docker:镜像命令

    简介 镜像相当于一个程序,容器相当于一个进程. 容器就是运行着的镜像. 镜像由多个层组成,每层叠加之后,从外部看来就是一个独立的镜像.镜像内部是一个精简的操作系统,同时内部还包含应用运行所必须的文件和 ...

最新文章

  1. oracle登录账号和密码,oracle 登录账号与密码oracle按照中文排序
  2. SAP S/4HANA product search generated SQL statement的生产原理介绍
  3. java自定义 filter,HBase自定义Filter
  4. 【OpenCV】OpenCV访问像素点的三种方式
  5. android 开源_Android开源如何使其成为移动市场的领导者
  6. attrib批量显示文件夹_DOS下批量修改文件及文件夹属性(attrib命令详解)
  7. 百度悄然发布Deep Vioce 3
  8. 从XKCD网站下载自动所有漫画图片---python实现
  9. quartus仿真27:JK触发器构成的同步十进制可逆计数器(分析)
  10. Windows聚焦壁纸
  11. 打印机可以打印不能扫描怎么弄_惠普打印机可以打印但无法扫描的解决办法
  12. 苹果付费app共享公众号_8.11号,IOS苹果App Store 5款付费App限时免费,支持iPhone/iPad...
  13. 计算机出现假桌面怎么解决办法,W10电脑下“AppHangXProcB1”导致桌面频繁假死如何解决?...
  14. nanopi 2 fire s5p4418 初次体验 (1)uboot,linux kernel编译
  15. 通过GB28181实现对安防摄像头的直播回放控制
  16. VMware Workstation 12 Pro 安装 mac最新系统版本10.12.3
  17. 极简Prometheus监控实战
  18. Wireshark菜单栏介绍之编辑菜单4-4
  19. JS childNodes
  20. 推荐十三本书,附豆瓣评分

热门文章

  1. 将mmd模型改造成游戏可用模型
  2. 简易地图---python数据结构
  3. English语法_分词用法-作名词
  4. 【操作系统】结合哲学家进餐问题分析如何预防死锁
  5. win10锁屏账户和计算机名,如何玩转Win10锁屏和主题
  6. Vue中data数据变化 -- 页面重新渲染的问题
  7. 人工智能技术及其应用初探
  8. 11:c# oop思想面向对象编程(by-朝夕)
  9. Python算法——查找数组前三名
  10. 【渝粤题库】 陕西师范大学 202961 教育社会学 作业(高起本、专升本)