通过标签删除镜像
通过如下两个都可以删除镜像:
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 ee7cb
通过 ID 来删除镜像,会先尝试删除所有指向该镜像的标签,然后在删除镜像本身。