本文主要介绍Docker删除和清理图像的方法,通过实例代码进行了详细介绍,具有一定的参考价值。感兴趣的朋友可以参考一下。
: 目录
1.通过标签2删除图像。通过ID 3删除图像。删除图像的限制4。清理图像。
一、通过标签删除镜像
您可以通过以下任一方式删除镜像:
docker RMI[图片]
或者:
docker图像RM[图像]
支持的子命令如下:
-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来删除镜像,例如:
码头工人rmi ee7cbd482336
一旦镜像被ID删除,它将首先尝试删除所有指向镜像的标签,然后删除镜像本身。
三、删除镜像的限制
删除镜像很简单,但是不能随时随地删除。它有一些局限性。
如果由该镜像创建的容器未被销毁,则不能删除该镜像。为了验证这一点,我们来做一个实验。首先,我们通过docker pull alpine命令拉最新的alpine图像,然后启动图像并让它输出hello,docker!
接下来,让我们尝试删除此图像:
您可以看到提示消息,并且您不能删除镜像,因为有一个容器正在引用它!同时,这条消息也告诉我们,只有添加-f子命令,即强行删除,才能删除图像!
docker.io/alpine码头
但是,我们一般不建议这样暴力的做法。正确的做法应该是:
首先删除引用此镜像的容器;再次删除此图像;
即根据上图的提示,参照该图片的容器ID (9d59e2278553)执行删除命令:
档案员rm 9d59e2278553
然后,执行命令删除镜像:
码头编号rmi 5cb3aa00f899
这时候就可以正常删除了!
四、清理镜像
在我们使用Docker一段时间后,系统中会残留一些临时未使用的镜像文件,可以通过以下命令清理这些文件:
docker图像修剪
它支持的子命令有:
-a,-all:删除所有无用的图像,不仅仅是临时文件;-f,-force:强制删除图像文件,不弹出确认提示;
另外,执行docker镜像修剪命令后,告诉我们释放了多少存储空间!
关于Docker删除和清理图片的方法这篇文章到此为止。关于Docker删除和清理图像的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!