详解docker强制批量删除none的image镜像
说正题,今天遇到的问题是自己在开发机做坏了几个image镜像,删不了 我想大家也遇到过这样类似的问题 ….
他的名字和tag都是为none,空…以前看过一个帖子说,给他标记一个tag,就可以干掉,瞎扯…
[ruifengyun@bj-buzz-dev01extractor_docker]$ [ruifengyun@bj-buzz-dev01extractor_docker]$dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE763e6d5096972minutesago1.123GB 008ec8098c8d21minutesago471MB
然后你去批量删除的时候会提示一个问题….
dockerrmi$(dockerimages|awk'/^/{print$3}') Error:image_delete:Conflict,64b4fa0cdd27wasn'tdeleted Error:image_delete:Conflict,5a2b9b2294c3wasn'tdeleted (…略…) 2014/03/0818:26:04Error:failedtoremoveoneormoreimages
以前的解决的方法是,dockerps-a里面找到基于image的容器然后stop它,rm他。但是会发现还是不行….
[ruifengyun@bj-buzz-dev01extractor_docker]$dockerps-a|grep008ec8098c8d f6a628cbe5e7008ec8098c8d"/bin/sh-c'pipins14minutesagoExited(1)13minutesagoromantic_wozniak 81cf08a442dd008ec8098c8d"/bin/sh-c'pipins21minutesagoExited(1)20minutesagodreamy_bardeen
dockerrmi id的时候,还是会提示删除失败。 最后我选择把所有的dockerps-a里面Exited的都删除,然后再开始rmi…..结果就可以了。。。。 想不通他们有啥关系,理论来说失败的images应该是它想他的容器是有关系的.. 反正是解决了,下面是写得批量删除的命令.
补充: 引起上面的原因是docker官方要求,dockerrmiimage_id只能删除未被使用的image.
dockerps-a|grep"Exited"|awk'{print$1}'|xargsdockerstop dockerps-a|grep"Exited"|awk'{print$1}'|xargsdockerrm dockerimages|grepnone|awk'{print$3}'|xargsdockerrmi
这样清空掉残余的容器后,再删除images就没有异常的提示了。
[ruifengyun@bj-buzz-dev01~]$dockerrmi-f9503b09c1a70 Deleted:9503b09c1a707d29b084e18aa13ef5d66f43672e41dce4db5931cbf2a754daa1
题外话,这两天还要研究下docker多个出口ip的方法…….实体服务器的外网是很多,但是在docker环境下,还没搞过,这两天研究下。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。