解决Docker Image镜像无法删除问题的方法

前言

Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境。由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得诸多IT厂商的参与,其中更是包括Google、Microsoft、VMware等业界行业领导者。同时,Docker在开发者社区也是一石激起千层浪,许多如我之码农纷纷开始关注、学习和使用Docker,许多企业,尤其是互联网企业,也在不断加大对Docker的投入,大有掀起一场容器革命之势。

发现问题:

镜像是Docker最核心的技术之一,也是应用发布的标准格式。最近在工作中遇到一个问题,问题如下:

Error response from daemon: conflict: unable to delete 4ac2d12f10cd (must be forced) - image is referenced in multiple repositories

来自守护进程的错误响应:冲突:无法删除4ac2d12f10cd(必须强制) - 映像在多个存储库中被引用

1.删除镜像

查看镜像

root@souyunku:~/mydocker# docker images
REPOSITORY   TAG     IMAGE ID   CREATED    SIZE
nginx    v1     4ac2d12f10cd  41 minutes ago  108MB
souyunku/nginx  v1     4ac2d12f10cd  41 minutes ago  108MB
hello-world   latest    f2a91732366c  5 weeks ago   1.85kB

删除失败

删除其中一个镜像,这里的镜像有1个repo引用,并且没有容器使用

并且没有容器使用

root@souyunku:~/mydocker# docker container ls -a
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS       PORTS    NAMES
4c104074b3f4  hello-world   "/hello"   About an hour ago Exited (0) About an hour ago      priceless_hawking

镜像有1个repo引用

root@souyunku:~/mydocker# docker rmi 4ac
Error response from daemon: conflict: unable to delete 4ac2d12f10cd (must be forced) - image is referenced in multiple repositories

2.解决方法

删除REPOSITORY

被删除的ImageID,这里存在1个REPOSITORY名字引用,解决方法如下:

即删除时指定名称,而不是IMAGE ID。

root@souyunku:~/mydocker# docker rmi souyunku/nginx:v1
Untagged: souyunku/nginx:v1

再删除IMAGE ID就可以了:

root@souyunku:~/mydocker# docker rmi 4ac
Untagged: nginx:v1
Deleted: sha256:4ac2d12f10cdb99c099749432b7a450ee1c6958e0f2f964cd64c6b086ba3e622
Deleted: sha256:346164f732e08d72d1f64828acda4e5ca93f79473f443ce57d9cfe69d9b66b24
Deleted: sha256:3f8a4339aadda5897b744682f5f774dc69991a81af8d715d37a616bb4c99edf5
Deleted: sha256:bb528503f6f01b70cd8de94372e1e3196fad3b28da2f69b105e95934263b0487
Deleted: sha256:410204d28a96d436e31842a740ad0c827f845d22e06f3b1ff19c3b22706c3ed4
Deleted: sha256:2ec5c0a4cb57c0af7c16ceda0b0a87a54f01f027ed33836a5669ca266cafe97a

3.查看镜像

 root@souyunku:~/mydocker# docker images
REPOSITORY   TAG     IMAGE ID   CREATED    SIZE
hello-world   latest    f2a91732366c  5 weeks ago   1.85kB

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

你可能感兴趣的:(解决Docker Image镜像无法删除问题的方法)