天天看點

【雲計算】Docker删除名稱為none的Image鏡像

先上删除指令:

docker images|grep none|awk '{print $3 }'|xargs docker rmi

 docker強制批量删除none的image鏡像

     真是有段時間沒搞Docker了,我們大部門的業務基本docker化了… …  确實是個好東西,我現在更多的是應用docker,具體的維護運維還是交給運維的朋友們… …  

     說正題,今天遇到的問題是自己在開發機做壞了幾個image鏡像,删不了   我想大家也遇到過這樣類似的問題  ….

    他的名字和tag都是為none,空… 以前看過一個文章說,給他标記一個tag,就可以幹掉,瞎扯… 

Python

1

2

3

4

5

6

[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

這樣清空掉殘餘的容器後,再删除images就沒有異常的提示了。 

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

Deleted: 9503b09c1a707d29b084e18aa13ef5d66f43672e41dce4db5931cbf2a754daa1

題外話, 這兩天還要研究下docker多個出口ip的方法……. 實體伺服器的外網是很多,但是在docker環境下,還沒搞過,這兩天研究下。 

參考資料:

http://xiaorui.cc/2015/03/11/docker%E5%BC%BA%E5%88%B6%E6%89%B9%E9%87%8F%E5%88%A0%E9%99%A4none%E7%9A%84image%E9%95%9C%E5%83%8F/