淘先锋技术网

首页 1 2 3 4 5 6 7

1. 删除docker镜像的指令

删除 docker 镜像的指令:docker image rm -f 镜像名/镜像ID

  1. 若输入容器ID
    1. 通常状况下,容器ID为唯一的,因此输入对应容器的容器ID,即可删除
    2. 容器ID输入不需要完整的,只需要输入到能唯一确定的位数即可
  2. 若输入镜像名
    1. 完整的镜像名 [镜像仓库地址/机构名/]镜像名[:版本]
    2. 至少需要输入镜像名

2. 遇到的问题

若对现有镜像执行docker tag指令后,两个镜像的镜像ID显示相同,若两个镜像的版本号也相同,则直接输入命令无法删除

  1. 如以下两个镜像:lxy_repo_test/my_rocky_ifconfiglocalhost:5000/my_rocky_ifconfig
    两者版本号均为1.0,镜像ID均为3860729ba9bd
    在这里插入图片描述

  2. 直接输入镜像名称,无法删除,即使两镜像名称不同也无法删除
    在这里插入图片描述
    在这里插入图片描述

  3. 直接输入容器ID,两个镜像都会被删除 (因为这两个镜像的ID相同)

  4. 通过docker inspect命令可以看到,两个镜像的镜像ID完全相同

3. 解决方案

容器名后加上对应的版本号即可正确删除
在这里插入图片描述

4. 原因分析

  1. 自己记忆的常用的删除 docker 镜像的命令,理解不够全面
    1. 删除 docker 镜像的指令:docker image rm [-f] 镜像名/镜像ID
      或者:docker rmi [-f] 镜像名/镜像ID
    2. 在这里,镜像名需要指定版本号
      若不指定版本号,则认为版本为latest
    3. 同理,从 docker hub 等公共镜像源,若不指定版本,则下载的镜像版本为latest
    4. 若删除镜像时,不指定版本,则命令默认查找latest版本,正好就能把上面未指定版本的镜像删除。
      这也是之前第一点指令中规定至少输入镜像名的情况(镜像版本是latest,则输入可省略)
  2. 测试,如果给一个镜像打上latest版本,删除镜像时即可省略版本号
    1. 使用镜像lxy_repo_test/my_rocky_ifconfig:1.0生成镜像test_rm:latest
      在这里插入图片描述

    2. 尝试删除镜像,镜像名省略版本号,直接写test_rm
      在这里插入图片描述
      删除成功