1. 删除docker镜像的指令
删除 docker 镜像的指令:docker image rm -f 镜像名/镜像ID
- 若输入容器ID
- 通常状况下,容器ID为唯一的,因此输入对应容器的容器ID,即可删除
- 容器ID输入不需要完整的,只需要输入到能唯一确定的位数即可
- 若输入镜像名
- 完整的镜像名 [镜像仓库地址/机构名/]镜像名[:版本]
- 至少需要输入镜像名
2. 遇到的问题
若对现有镜像执行docker tag
指令后,两个镜像的镜像ID
显示相同,若两个镜像的版本号
也相同,则直接输入命令无法删除
-
如以下两个镜像:
lxy_repo_test/my_rocky_ifconfig
和localhost:5000/my_rocky_ifconfig
两者版本号均为1.0
,镜像ID均为3860729ba9bd
-
直接输入
镜像名称
,无法删除,即使两镜像名称不同也无法删除
-
直接输入
容器ID
,两个镜像都会被删除 (因为这两个镜像的ID相同) -
通过
docker inspect
命令可以看到,两个镜像的镜像ID
完全相同
3. 解决方案
在容器名
后加上对应的版本号
即可正确删除
4. 原因分析
- 自己记忆的常用的删除 docker 镜像的命令,理解不够全面
- 删除 docker 镜像的指令:
docker image rm [-f] 镜像名/镜像ID
或者:docker rmi [-f] 镜像名/镜像ID
- 在这里,
镜像名
需要指定版本号
若不指定版本号,则认为版本为latest
- 同理,从 docker hub 等公共镜像源,若不指定版本,则下载的镜像版本为
latest
- 若删除镜像时,不指定版本,则命令默认查找
latest
版本,正好就能把上面未指定版本的镜像删除。
这也是之前第一点指令中规定至少输入镜像名的情况(镜像版本是latest,则输入可省略)
- 删除 docker 镜像的指令:
- 测试,如果给一个镜像打上
latest
版本,删除镜像时即可省略版本号-
使用镜像
lxy_repo_test/my_rocky_ifconfig:1.0
生成镜像test_rm:latest
-
尝试删除镜像,
镜像名
省略版本号
,直接写test_rm
删除成功
-