爱若晨风 发表于 2018-5-30 07:25:39

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

  真是有段时间没搞Docker了,我们大部门的业务基本docker化了… …确实是个好东西,我现在更多的是应用docker,具体的维护运维还是交给运维的朋友们… …
     说正题,今天遇到的问题是自己在开发机做坏了几个image镜像,删不了   我想大家也遇到过这样类似的问题….
  他的名字和tag都是为none,空… 以前看过一个帖子说,给他标记一个tag,就可以干掉,瞎扯…

  $
  $ 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
  (…略…)
  以前的解决的方法是,docker ps -a里面找到基于image的容器 然后stop它,rm他。 但是会发现还是不行….

  
  $ 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   

  

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

  
  


  


  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删除就没有了。

  
页: [1]
查看完整版本: docker强制批量删除none的image镜像