Docker 删除及清理镜像的方法
作者:huayang183 发布时间:2022-09-09 09:08:26
一、通过标签删除镜像
通过如下两个都可以删除镜像:
docker rmi [image]
或者:
docker image rm [image]
支持的子命令如下:
-f, -force
: 强制删除镜像,即便有容器引用该镜像;-no-prune
: 不要删除未带标签的父镜像;
例如,我们想删除上章节创建的 allen_mysql:5.7
镜像,命令如下:
docker rmi allen_mysql:5.7
从上面章节中,我们知道 allen_mysql:5.7
和 docker.io/mysql:5.7
实际上指向的是同一个镜像,那么,您可以能会有疑问,我删除了 allen_mysql:5.7
, 会不会将 docker.io/mysql:5.7
镜像也给删除了?
实际上,当同一个镜像拥有多个标签时,执行 docker rmi
命令,只是会删除了该镜像众多标签中,您指定的标签而已,并不会影响原始的那个镜像文件。
不信的话,我们可以执行 docker images
命令,来看下 docker.io/mysql:5.7
镜像还在不在:
可以看到,docker.io/mysql:5.7
镜像依然存在!
那么,如果某个镜像不存在多个标签,当且仅当只有一个标签时,执行删除命令时,您就要小心了,这会彻底删除镜像。
例如,这个时候,我们再执行 docker rmi docker.io/mysql:5.7
命令:
从上图可以看到,我们已经删除了 docker.io/mysql:5.7
镜像的所有文件层。该镜像在本地已不复存在了!
二、通过 ID 删除镜像
除了通过标签名称来删除镜像,我们还可以通过制定镜像 ID, 来删除镜像,如:
docker rmi ee7cbd482336
一旦制定了通过 ID 来删除镜像,它会先尝试删除所有指向该镜像的标签,然后在删除镜像本身。
三、删除镜像的限制
删除镜像很简单,但也不是我们何时何地都能删除的,它存在一些限制条件。
当通过该镜像创建的容器未被销毁时,镜像是无法被删除的。为了验证这一点,我们来做个试验。首先,我们通过 docker pull alpine
命令,拉取一个最新的 alpine
镜像, 然后启动镜像,让其输出 hello, docker!
:
接下来,我们来删除这个镜像试试:
可以看到提示信息,无法删除该镜像,因为有容器正在引用他!同时,这段信息还告诉我们,除非通过添加 -f
子命令,也就是强制删除,才能移除掉该镜像!
docker rmi -f docker.io/alpine
但是,我们一般不推荐这样暴力的做法,正确的做法应该是:
先删除引用这个镜像的容器;
再删除这个镜像;
也就是,根据上图中提示的,引用该镜像的容器 ID (9d59e2278553
), 执行删除命令:
docker rm 9d59e2278553
然后,再执行删除镜像的命令:
docker rmi 5cb3aa00f899
这个时候,就能正常删除了!
四、清理镜像
我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:
docker image prune
它支持的子命令有:
-a, --all
: 删除所有没有用的镜像,而不仅仅是临时文件;-f, --force
:强制删除镜像文件,无需弹出提示确认;
另外,执行完 docker image prune
命令后,还是告诉我们释放了多少存储空间!
来源:https://blog.csdn.net/qq_18671415/article/details/116231314


猜你喜欢
- 前言在管理和维护Linux系统的过程中,将会使用到大量命令,有一些很长的命令或用法经常被用到,重复而频繁地输入某个很长命令或用法是不可取的。
- 虚拟机下安装各类镜像,桌面版服务器版都装了很多次了,已经很熟了。本来没再想出个记录,但是这两天导师非得让我把gem5+Qt的环境,从服务器搬
- 三种模式Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)在安装好vmware后,在网络连接中会有以下
- 作网站两年了段段续续作作停停的,一直在南方某个小城过着打工仔的生涯,总是作着作这就半途而费了,原因千丝万缕,技术不到位,没电脑不方便,但最主
- 很多热门论坛都会给会员提供FTP资源下载,达到一定等级的会员就可以免费登录这些FTP服务器下载诸多共享资源,如影视、技术资料、常用大型工具软
- 环境:主机Win7、VMware Workstation 6.5.3、虚拟机Ubuntu10.04。一、桥接的基本原理配置成桥接网络连接模式
- 对于破解站网站,相信很多人都很熟悉,它是一个破解软件下载站。但谁也不曾料到,就这么一个小站在短短的四个月时间里居然能在这个无限宽广的互联网领
- 1、经常规律性的更新文章2、确保服务器工作正常3、使页面尽量简洁,确保打开速度快4、检查内部链接结构,去除死链接和重复链接5、尽量多从正规和
- 自从开通这一功能后,陆续有不少WordPress爱好者问我博客上的“支持”、“反对”是怎么实现的。我想不少人都知道这一功能是把“牛#博”中的
- 一个人,走的太快,需要停住脚步,让灵魂跟上来。===印第安谚语每逢岁末,少不了总要盘点一番,得与失,因与果,回头看看自身,看看找查发一年来的
- Linux远程控制技术概念和起源远程控制是在网络上由一台计算机(主控端Remote/客户端)远距离去控制另一台计算机(被控端Host/服务器
- 北京时间10月25日,据国外媒体报道,谷歌周三在其分析师日会议上介绍了其建立流行的iGoogle个人主页的最新情况。随着iGoogle的变化
- 问题描述安装Qt5.15.0后,在运行测试用例时弹出错误:qt.qpa.plugin: Could not load the Qt plat
- 1、SQL注入漏洞的入侵这种是ASP+ACCESS的网站入侵方式,通过注入点列出数据库里面管理员的帐号和密码信息,然后猜解出网站的后台地址,
- 在前面的Windows2003设置系列教程中,我们提及了使用eAccelerator加速PHP,在那篇文章中提供了PHP5.2.0到PHP5
- 虚拟机正在使用或无法连接到报类似如下错误时解决方案首先进入该页面获得虚拟机所在位置删除.ick后缀的文件,该文件应该是保存了虚拟机上次运行时
- 10月30日消息,据国外媒体报道,苹果已经决定针对诺基亚的起诉与诺基亚在法庭上展开斗争。苹果向美国证券交易委员会提交了一份报告。苹果在报告中
- 首先在这里先要鄙视一下那些所谓的黑客,基本上都是一群只会拾人牙慧的垃圾,高手发布了一些教程漏洞,然后找几个软件按图索骥黑了几个网站就把自己封
- “XX,你又来我家偷菜,太无耻了!”“我辛辛苦苦种的玫瑰啊,你们就不能给我留点吗
- 可扩展性和性能:端终服务 用户可以在服务器上运行 Windows 程序,使用一台远程 PC 机、Windows 终端或非 Wind