概要
dockerを利用していると使っていないコンテナやイメージがたまる
それを一括で削除する方法について調べたことをざっくりまとめておく
イメージの一括削除
一覧を確認するコマンドのfilterオプションを使って検索した結果を削除時に渡すことで実現する
(-qはIDのみを出力するためのオプション)
タグ付けされていないものを一括削除
docker rmi $(docker images -f "dangling=true" -q)
filterオプションで指定できるのは下記があり、上記の$()
内を入れ替えるて実行できる
タグ付けされていない
docker images --filter "dangling=true"
指定のIDより前の
docker images --filter "since=e07d647d1a8e"
指定のIDより後に
docker images --filter "since=e07d647d1a8e"
ラベル付けされた
docker images --filter "label=com.example"
ラベル付けされた(複数もいける)
docker images --filter "label=com.example=TEST"
コンテナの一括削除
イメージと同様にfilterを使います。
ドキュメントによるとコンテナIDでの指定も可能のようですが、私がためした時は見つからないとエラーがでました
docker rm $(docker ps -a --filter since=[コンテナ名] -q)
filterの詳細については、多数あるためここでは割愛します。
詳細はこちらを参考にDocker-docs-ja(psについて)
参考
imageのfilterオプションの詳細
Docker-docs-ja(imageについて)
psのfilterオプションの詳細
Docker-docs-ja(psについて)
Dockerの基礎がわかりやすく解説されています
Dockerイメージの理解とコンテナのライフサイクル@Zenbutsu