2017/06/20

Docker で古いコンテナとイメージを消す

Docker で適当にコンテナを作っていたり、CI とかをしていると使われなくなったコンテナが大量に積もっていきます。
それを適当に消したのでそのメモ。


環境

  • CentOS Linux release 7.0.1406 (Core)
  • Docker version 1.12.6, build 1398f24/1.12.6


コマンド

  • docker ps -aq | tail -30 | xargs  docker rm
基本的には古いものから消していく方針で。
images の option で -q を付けると hash だけを出してくれます。
あと -f で特定の条件のみで絞りこみをしてくれるようです。
  • docker ps -qaf "status=exited"
とかすると止まってるのだけ出してくれる。
動いてるコンテナは -f を付けない限り消さないので、 とりあえず全部 rm に渡してしまうのもありかも。

あとはイメージを消すだけです
  • docker images -aq | xargs docker rmi
こいつも使われているイメージは -f を付けない限り残してくれる。
なのでとりあえず消せそうなもの全部消そうとしてみる、とか可能です。

  • docker images -qf dangling=true
とかでタグが付いていないイメージだけを対象にする、というコマンドが参考記事にありましたが、今回はタグが付いているイメージもあるので -aq で。


まとめ

  • docker ps -aq | xargs  docker rm
  • docker images -aq | xargs docker rmi
とかでとりあえず起動していないコンテナ以外消えます。
新しい docker だと docker image prune とかあるらしいのでもっと楽かも。


参考文献

0 件のコメント:

コメントを投稿