删除镜像时出现这样的错误:Error response from daemon: conflict: unable to delete 214a54c8ea8c (must be forced) - image is referenced in multiple repositories

docker tag命令

为了区分同一个仓库中的不同镜像,docker提供了一种称为“标签(tag)”的功能。每个标签对组成特定镜像的一些镜像层进行标记,这种机制使得在同一个仓库中可以存储多个镜像。
相同的镜像ID也可以有不同的标签,比如下面的镜像74fe38d11401,打了两个标签12.04precise,分别表示Ubuntu发布版的版本号和代号。

REPOSITORY      TAG     IMAGE ID        CREATED     VAITURL SIZE
ubuntu          12.04   74fe38d11401    2 weeks ago 209.6 MB
ubuntu          precise 74fe38d11401    2 weeks ago 209.6 MB

解决办法

回到我们的问题上,之所以不能删除是因为当同时有多个特定镜像指向一个镜像ID时,不能唯一确定你要删除的是哪个镜像。解决办法就是通过在仓库名后面加上一个冒号和标签名来明确该仓库中的某一个镜像,从而达到删除的目的。
step1: 使用docker images查看删除的镜像ID都有哪个标签在指向,例如:

REPOSITORY                  TAG        IMAGE ID           CREATED             VAITURL SIZE
registry.csdn.com/benben    1.0.0      214a54c8ea8c       13 minutes ago      45.8MB
registry.csdn.com/benben    latest     214a54c8ea8c       13 minutes ago      45.8MB

step2: 找到你要删除的那个TAG,然后通过docker rmi [repository]:[tag]来删除,例如:

docker rmi registry.csdn.com/benben:1.0.0
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐