详解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 SIZE
<none>                    <none>       763e6d509697    2 minutes ago    1.123 GB
<none>                    <none>       008ec8098c8d    21 minutes ago   471 MB

然后你去批量删除的时候会提示一个问题….

docker rmi $(docker images | awk '/^<none>/ { print $3 }')
Error: image_delete: Conflict, 64b4fa0cdd27 wasn't deleted
Error: image_delete: Conflict, 5a2b9b2294c3 wasn't deleted
(…略…)
2014/03/08 18:26:04 Error: failed to remove one or more images

以前的解决的方法是,docker ps -a里面找到基于image的容器 然后stop它,rm他。 但是会发现还是不行….

[ruifengyun@bj-buzz-dev01 extractor_docker]$ docker ps -a |grep 008ec8098c8d
f6a628cbe5e7    008ec8098c8d               "/bin/sh -c 'pip ins  14 minutes ago   Exited (1) 13 minutes ago                            romantic_wozniak
81cf08a442dd    008ec8098c8d               "/bin/sh -c 'pip ins  21 minutes ago   Exited (1) 20 minutes ago                            dreamy_bardeen

docker rmi  id 的时候,还是会提示删除失败。  最后我选择把所有的docker ps -a里面Exited的都删除,然后再开始rmi….. 结果就可以了。。。。  想不通他们有啥关系,理论来说失败的images应该是它想他的容器是有关系的..    反正是解决了,下面是写得批量删除的命令.

补充:   引起上面的原因是docker官方要求,docker rmi image_id 只能删除未被使用的image .

docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
docker images|grep none|awk '{print $3 }'|xargs docker rmi

这样清空掉残余的容器后,再删除images就没有异常的提示了。

[ruifengyun@bj-buzz-dev01 ~]$ docker rmi -f 9503b09c1a70
Deleted: 9503b09c1a707d29b084e18aa13ef5d66f43672e41dce4db5931cbf2a754daa1

题外话, 这两天还要研究下docker多个出口ip的方法……. 实体服务器的外网是很多,但是在docker环境下,还没搞过,这两天研究下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 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-register镜像及none无效镜像详解

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

  • 详解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学习之用commit命令创建镜像

    构建镜像的两种方法: 使用docker commit 命令 使用docker build命令和Dockerfile文件 Dockerfile更抢到.灵活,推荐使用. 一般来说不是真的"创建"新镜像,而是基于一个已有的基础镜像,比如Ubuntu.Fedora等,构建新的镜像而已. 用commit创建镜像 创建Docker账号 共享和发布镜像时构建镜像中重要的环节,可以将镜像推送到Docker Hub或资金的私有Registry中.首先到https://hub.docker.com/acc

  • 详解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 Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器.国内很多云服务商都提供了国内加速器服务,例如: 网易云加速器 https://hub-mirror.c.163.com 阿里云加速器(需登录账号获取): https://cr.console.aliyun.com/cn-hangzhou/mirrors 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档. 在CentOS7系统

  • 详解Docker使用Linux iptables 和 Interfaces管理容器网络

    我使用docker至今已有一段时间了,与绝大部分的人一样,我被docker强大的功能和易用性深深的折服.简单方便是docker的核心之一,它强大的功能被抽象成了非常简单的命令.当我在使用和学习docker的时候,我很想知道docker在后台都做了一些什么事情,特别是在网络这一块(我最感兴趣的一块) 我找到了很多关于创建和操作容器网络的文档,但是关于docker如何使网络工作的却没有那么多. Docker广泛使用linux iptables和网桥接口,这篇文章是我如何用于创建容器网络的总结,大部分

  • 详解Docker Swarm概念与用法

    Docker Swarm是Docker公司开发的容器集群管理服务.从1.12.0版本开始,已经是Docker安装后自带的一部分(捆绑软件)了,又称为Swarm Mode,无需额外安装. 与Kubernetes相比,Docker Swarm是一个简单的软件,似乎不堪大用.但是它与docker-compose兼容的优点,可以弥补一切.对于没有集群使用经验的小白,用Docker Swarm起步,是一个很好的选择. 概念 Docker Swarm,主要包含以下概念: Swarm Node Stack S

  • 详解docker部署Jenkins新手使用教程

    本文通过docker部署Jenkins+Maven+SVN+Tomcat,在基础镜像Jenkins上安装Maven及自带的OpenJDK形成新的镜像,然后通过SVN将项目checkout下来,由Jenkins自带的插件或脚本将Maven生成的war包发送到指定的Tomcat的WebApps目录下,最终启动Tomcat完成自动化部署. 通过docker命令:sudo docker run –d -p 9898:8080 -p 50000:50000 -v /alidata/projects/jen

  • 详解docker容器的层的概念

    今天我们看看容器的层的概念. 上一节中,我们知道了,容器是一个进程,在这个进程的基础上,添加了下面3个部分: 1.启动Linux Namespace的配置实现与物理机的隔离. 2.设置Cgroups参数限制容器的资源. 3.生成系统文件目录,也就是rootfs文件,也叫镜像文件 这里需要备注的是:rootfs只是容器需要使用的基本文件的组合,并不包括操作系统内核,容器的操作系统内核依旧是使用宿主机的内核.当然,rootfs的存在,并不是没有意义,它的存在,使得容器拥有了一个最主要的性能:一致性.

  • 详解Docker Compose配置文件参数

    目录 1. image 2. build 3. command 4.container_name 5.depends_on 6.dns 7. tmpfs 8. entrypoint 9.env_file 10. environment 11. expose 12. external_links 13. extra_hosts 14. labels 15. links 16. logging 17. pid 18. ports 19. security_opt 20. stop_signal 21

  • 详解Python如何批量检查图像是否可用

    数据集中的图像,一般不可用在以下3个方面: 1.图像过小 2.无法打开 3.“Premature end of JPEG file” 这些图像可能会导致模型的学习异常,因此,使用多进程检查数据集中的每张图像,是很有必要的. 具体逻辑如下: 遍历文件夹,多进程处理每一张图像 判断图像是否可读,是否支持resize尺寸,边长是否满足 判断JPG图像是否Premature end 删除错误图像 脚本如下: #!/usr/bin/env python # -- coding: utf-8 -- "&qu

随机推荐