1 前言

欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章!

搞容器开发一段时间后,想看看都有哪些镜像,执行了一下docker images -a,蒙圈了,有一堆<none>:<none>的镜像。不知有什么用,不知能不能删,不知会不会占用很多空间。接下来我们探索一下吧。

2 镜像也有好坏吗?

这些<none>:<none>镜像可分为两类:好与坏、有用与无用、不建议删除和建议删除的。

2.1 好的none

好的<none>:<none>镜像是由于镜像分层的中间镜像。它们只会在docker images -a才会显示出来,用docker images是不会显示的。它们也不会造成空间问题。

2.2 坏的none

坏的<none>:<none>镜像会占用空间,主要是由于新加镜像替换原来相对标签的镜像,原来镜像就变成了<none>:<none>而不会被删除。

我们执行docker images查看:

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
pkslow/springboot-mongo 0.0.6 f029f9b6e703 28 minutes ago 356MB
pkslow/springboot-mongo latest f029f9b6e703 28 minutes ago 356MB
<none> <none> 56de36189ad6 29 minutes ago 356MB
<none> <none> 9e00dfd258dc 40 hours ago 356MB
<none> <none> 2d736eaaafd0 2 weeks ago 346MB

然后再docker build一次,用同样的标签0.0.6

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
pkslow/springboot-mongo 0.0.6 2119e4fbc6e8 43 seconds ago 356MB
pkslow/springboot-mongo latest 2119e4fbc6e8 43 seconds ago 356MB
<none> <none> f029f9b6e703 30 minutes ago 356MB
<none> <none> 56de36189ad6 31 minutes ago 356MB
<none> <none> 9e00dfd258dc 40 hours ago 356MB
<none> <none> 2d736eaaafd0 2 weeks ago 346MB

认真查看可以得出,以前最新的镜像ID为f029f9b6e703,后来变成了<none>:<none>

这些坏坏的镜像也叫dangling images,空悬镜像。

3 如何删除dangling images

既然没用,又还占用空间,不如就删掉它。Docker没有自动删除这些镜像的机制,可以通过以下命令删除:

$ docker rmi $(docker images -f "dangling=true" -q)

检查一下,已经没有<none>的镜像了。

$ docker images | grep '<none>'

欢迎关注微信公众号<南瓜慢说>,将持续为你更新...

多读书,多分享;多写作,多整理。

Docker这些none:none的镜像,难道就不配拥有名字吗的更多相关文章

  1. 【docker linux】linux系统镜像转化为docker镜像

    概述 使用docker安装linux的同学都知道,你在docker提供的仓库安装linux系统,你就会体验到最精简的.最纯净的linux系统,当然,他会精简到你连ifconfig命令都需要自己配置,恰 ...

  2. docker学习笔记3:镜像操作(查找和下载)

    一.查看本地镜像 只有下载后,镜像才会保存在本地(docker环境所在的主机),通过如下命令可以查看本地已经存在的镜像. 命令:dokcer images 上面命令列出本地所有已经存在的镜像,显示的信 ...

  3. docker:(1)docker基本命令使用及发布镜像

    docker镜像可以完全看作一台全新的电脑使用,无论什么镜像都是对某一东西进行了配置,然后打包后可以快速移植到需要的地方直接使用 省去复杂的配置工作 比如java web项目部署,如果是新部署,需要装 ...

  4. docker入门(二)容器与镜像的理解

    10张图带你深入理解Docker容器和镜像 申明:此篇文章是转载的(原文地址http://dockone.io/article/783),今天意外发现已经有人转载了(复制了),希望大家关注原创 原本打 ...

  5. docker入门(二)容器与镜像的关系

    [编者的话]本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(co ...

  6. 详解docker实战之搭建私有镜像仓库 - kurbernetes

    1.实战目的 搭建企业私有的镜像仓库,满足从开发环境推送和拉取镜像.当我们使用k8s来编排和调度容器时,操作的基本单位是镜像,所以需要从仓库去拉取镜像到当前的工作节点.本来使用公共的docker hu ...

  7. docker (2) 通用/镜像命令

    Docker 的常用命令: (1)Docker  help 命令: 可以查看有关docker的所有操作命令: (2)docker COMMAND -–help 查看docker 的某项命令的帮助文档 ...

  8. Docker实践之02-使用镜像及定制

    目录 一.获取镜像 二.使用镜像启动容器实例 三.列出镜像 四.删除本地镜像 五.定制镜像 通过commit命令定制镜像 通过Dockerfile定制镜像 docker build的工作原理 dock ...

  9. Docker commit 命令保存的镜像文件太大的问题

    基础镜像: centos7.5 进入容器后, 先后安装了 jdk1.8, maven3.6.0, git, rocketmq4.3.2 安装完成后使用 docker commit 命令保存为镜像 结果 ...

随机推荐

  1. 虚拟机 - 桥接模式下,虚拟网卡没有 ip

    背景 Linux 虚拟机,用桥接模式,敲 ifconfig命令,ens33 没有 ip 即没有红色圈住那部分 解决方案 修改配置文件 vim /etc/sysconfig/network-script ...

  2. ES6模块与CommonJS模块有什么区别?

    ES6 Module和CommonJS模块的区别: CommonJS是对模块的浅拷贝,ES6 Module是对模块的引用,即ES6 Module只存只读,不能改变其值,具体点就是指针指向不能变,类似c ...

  3. 基于web的图书管理系统设计与实现

    原文链接:基于web的图书管理系统设计与实现 系统演示链接:点击这里查看演示 01 系统简述     图书管理系统就是利用计算机,结合互联网对图书进行结构化.自动化管理的一种软件,来提高对图书的管理效 ...

  4. mongodb(三):数据库连接(python)

    import pymongo def get_mongodb_conn(**kwargs): db_host = kwargs.get('host') db_port = kwargs.get('po ...

  5. Python面向对象06 /元类type、反射、函数与类的区别、特殊的双下方法

    Python面向对象06 /元类type.反射.函数与类的区别.特殊的双下方法 目录 Python面向对象06 /元类type.反射.函数与类的区别.特殊的双下方法 1. 元类type 2. 反射 3 ...

  6. ArcGIS 10.2安装及卸载教程

    卸载 在控制面板中找到程序->卸载程序 找到ArcGIS的相关软件 这里以ArcGIS 10.2 Destop为例,选中,然后点击卸载,会出现如下界面 选择Remove,然后根据提示进行操作,即 ...

  7. C++ 深搜调错

    因为前两天某网站的比赛一个深搜错了,我只得了3等奖,我找不到错误,给别的大佬看他们又嫌恶心.emm……,比赛结束后我自己反思了一下,深搜写错了该怎么办,或者说怎样避免写错. 首先,变量名不要太ex,比 ...

  8. JAVA集合四:比较器--类自定义排序

    参考链接: HOW2J.CN 前言 对于JAVA集合,都能够用集合的工具类Collections 提供的方法: Collections.sort(List list) Collections.sort ...

  9. 【JVM之内存与垃圾回收篇】程序计数器

    程序计数器 介绍 JVM 中的程序计数寄存器(Program Counter Register)中,Register 的命名源于 CPU 的寄存器,寄存器存储指令相关的现场信息.CPU 只有把数据装载 ...

  10. Python新手学习raise用法

    当程序出现错误时,系统会自动引发异常.除此之外,Python也允许程序自行引发异常,自行引发异常使用 raise 语句来完成. 很多时候,系统是否要引发异常,可能需要根据应用的业务需求来决定,如果程序 ...