docker noneのイメージミラーを強制的に一括削除

4225 ワード

本当にしばらくDockerをやっていません.私たちの大部門の業務は基本的にdocker化されています. 確かにいいものですが、私は今dockerを応用しています.具体的なメンテナンスは運維の友达に任せますか. 
本題を言うと、今日出会った問題は自分が開発機でいくつかのimageミラーを壊して、削除できないことです.  皆さんも似たような問題に遭遇したことがあると思います. ….
http://xiaorui.cc
http://xiaorui.cc
http://xiaorui.cc
彼の名前とtagはすべてnoneのためで、空...以前1つの招待状を見たことがあって、彼にtagをマークして、乾かすことができて、でたらめを言って...  
Python
[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

大量削除すると質問が表示されます...
Python
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彼です.でもやっぱりだめだと気づく... 
Python
[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は彼の容器が関係があると思っているはずだ.   いずれにしても解決しました.次は一括削除のコマンドです.
Python
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に削除するとなくなります. 
Python
[ruifengyun@bj-buzz-dev01 ~]$ docker rmi -f 9503b09c1a70
Deleted: 9503b09c1a707d29b084e18aa13ef5d66f43672e41dce4db5931cbf2a754daa1

余談ですが、この2,3日はdockerが複数のipを輸出する方法も検討しなければなりません.......エンティティサーバの外部ネットワークは多いですが、docker環境では、まだやったことがありません.この2,3日は検討しています. 
ポイントはlinux shellがよく書けていることです.