解决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 技巧之删除Docker容器和镜像
  • 详解Docker Registry之删除镜像、垃圾回收
  • docker 如何删除none镜像
  • 详解docker强制批量删除none的image镜像
  • 如何删除docker-register镜像及none无效镜像详解
(0)

相关推荐

  • 详解docker强制批量删除none的image镜像

    说正题,今天遇到的问题是自己在开发机做坏了几个image镜像,删不了   我想大家也遇到过这样类似的问题  -. 他的名字和tag都是为none,空- 以前看过一个帖子说,给他标记一个tag,就可以干掉,瞎扯- [ruifengyun@bj-buzz-dev01 extractor_docker]$ [ruifengyun@bj-buzz-dev01 extractor_docker]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL

  • docker 如何删除none镜像

    删除none的镜像,要先删除镜像中的容器.要删除镜像中的容器,必须先停止容器. $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 168b258ceea3 34 seconds ago 460.6 MB <none> <none> b2c5d34941c6 23 minutes ago 588.7 MB tankzhang/es v1 85fc66558c37 13 days

  • 详解Docker Registry之删除镜像、垃圾回收

    Docker仓库在2.1版本中支持了删除镜像的API,但这个删除操作只会删除镜像元数据,不会删除层数据.在2.4版本中对这一问题进行了解决,增加了一个垃圾回收命令,删除未被引用的层数据.本文对这一特性进行了体验,具体步骤如下. 1.部署镜像仓库 (1)启动仓库容器 复制代码 代码如下: dockerrun -d -v /home/config.yml:/etc/docker/registry/config.yml -p 4000:5000 --nametest_registryregistry:

  • Docker 技巧之删除Docker容器和镜像

    公司业务在生产环境100多台服务器上用了docker,已经有大半年了,可是最近发现,每个服务器上的各种镜像好多好乱,就想批量删除镜像,需要的来看一下把. 删除所有未运行 Docker 容器 docker rm $(docker ps -a -q) 删除所有 Docker 镜像 删除所有未打 tag 的镜像 docker rmi $(docker images -q | awk '/^<none>/ { print $3 }') 删除所有镜像 docker rmi $(docker images

  • 如何删除docker-register镜像及none无效镜像详解

    背景介绍 我们大家在服务器上搭建了docker registry,所有的构建镜像都会集中在一个服务器上,久而久之硬盘就被塞满了.本文会着重介绍两种清理方式.一是<none>标签的镜像,二是删除docker物理镜像.下面话不多说了,来一起看看详细的介绍吧. docker<none>镜像 有效的 none 镜像 为了理解 <none> 镜像,我们先要理解 Docker镜像系统的工作机制,以及 layers是如何组织起来的. 当我拉取一个stresser镜像的时候,运行 do

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

    前言 Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议.通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境.由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得诸多IT厂商的参与,其中更是包括Google.Microsoft.VMware等业界行业领导者.同时,Dock

  • 解决docker pull镜像报错的问题

    描述: 在win10下安装VM,在VM里运行docker,使用docker pull拉取镜像时报错 一. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 原因: 使用docker pull 命令拉取镜像时,如果不添加额外的信息如docker pull nginx

  • 解决docker images 镜像消失的问题

    1.50,93存在镜像消失情况 [root@h50 /]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 24G 0 24G 0% /dev tmpfs 24G 0 24G 0% /dev/shm tmpfs 24G 428M 24G 2% /run tmpfs 24G 0 24G 0% /sys/fs/cgroup /dev/mapper/cl-root 50G 43G 8.0G 85% / root剩下85% overlay 50G 43G 8.0G 85% /v

  • 解决docker pull镜像速度慢的问题的方法

    直接下载Docker镜像时,由于种种原因,经常下载失败,即使连接成功也是很慢,怎么办呢 目前我知道可以提升速度的办法:DaoCloud 提供Docker Hub Mirror服务 用户可以进入Docker Hub Mirror注册入口注册(https://account.daocloud.io/signin).在进入控制台页面后直接点击 启动你的加速器后,您即可得到一个Mirror的地址,将该地址配置在Docker Daemon的启动脚本中,重启Docker Daemon即可使得Docker H

  • docker pull镜像速度慢的问题解决方法

    目前,Docker拥有中国的官方镜像,具体内容可访问https://www.docker-cn.com/registry-mirror 在使用时,Docker 中国官方镜像加速可通过 registry.docker-cn.com 访问.该镜像库只包含流行的公有镜像.私有镜像仍需要从美国镜像库中拉取. 您可以使用以下命令直接从该镜像加速地址进行拉取: $ docker pull registry.docker-cn.com/myname/myrepo:mytag 例如: $ docker pull

  • 使用Docker registry镜像创建私有仓库的方法

    安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境,本文记录简单的搭建过程. 1 使用registry启动私有仓库的容器 docker run -d -p 5000:5000 -v /root/my_registry:/tmp/registry registry 说明:若之前没有安装registry容器则会自动下载并启动一个registry容器,创建本地的私有仓库服务.默认情况下,会将仓库创建在容器的/tmp/registry目录下,可以通过 -v 参数来将

  • 在docker中部署并启动redis的方法

    docker部署redis 首先在linux中安装上Docker,然后启动Docker服务 Centos7中 启动Docker systemctl start docker //启动docker systemctl stop docker //停止docker systemctl restart docker //重启docker 查找想要拉取的镜像 1. 直接在Linux中使用docker search 镜像名称 搜索镜像        docker search 镜像名称 2. 在Docke

  • docker镜像无法删除 Error:No such image:xxxxxx解决

    前言 docker镜像无法删除,通过 docker images 查看镜像明明存在就是删除不了. 删除提示:Error:No such image:xxxxxxx 具体截图内容如下: 解决方法 进入目录: cd /var/lib/docker/image/overlay2/imagedb/content/sha256 该目录即为 docker 中的所有镜像文件(以shar256加密方式加密后的镜像文件),我们通过 ll 查看一下: 删哪个呢?别慌,docker images 中的 IMAGE I

  • 谷歌技术人员解决Docker镜像体积太大问题的方法

    虚拟机的问题 最初,大家都使用虚拟机作为软件的运行环境,对外提供服务.为了在虚拟机上运行你的 Service,你不得不运行一大堆程序: 系统进程 定时任务 SSH 安装 Agent 安装 Bash 安装一大堆 libs 其实,你仅仅只是想让你的 Service运行起来,但你不得不维护一个 40GB的虚拟机. 然后你开始试用 Docker 开始试用 Docker,你毫不犹豫选择了和之前虚拟机一样的镜像:Ubuntu 1404,将之前的虚机的内容复制到了 Docker镜像,安装了一堆软件,最后发现你

  • Docker私有仓库管理和删除本地仓库中的镜像

    一:Docker私有仓库安装 1. 下载镜像是有镜像仓库: [root@localhost ~]# systemctl start docker #如果已经有镜像了,强制删除原来的镜像的方式如下: [root@xxx-pub /]# docker rmi -f docker.io/registry Untagged: docker.io/registry:latest Untagged: docker.io/registry@sha256:51bb55f23ef7e25ac9b8313b139a

随机推荐