定期的に新規作成するコンテナの削除後、用済みになったボリュームが残ったままになって蓄積され容量を圧迫していたため、docker volume prune -a
で使われていないボリュームを全て消すのではなく、このコンテナに関係するボリュームだけをまとめて削除する方法を調べた結果のメモです。
用済みボリュームを選択して削除する
今回の本題、用済みボリュームのうち対象となるものを選択してまとめて削除する方法です。
以下のように--filter
オプションを利用します。-a
オプションを付けないと匿名コンテナしか削除できません。
docker volume prune -a --filter "label=foo=bar"
docker volume prune
でサポートされているフィルターはlabel
フィルターのみで、上記のようにlabel=<key>=<value>
やlabel=<key>
、label!=<key>=<value>
といった形で使うことができます。ラベル以外には対応していないため、この方法を使う場合には、あらかじめ対象のボリュームに他のボリュームと区別可能なラベルを付与しておく必要があります。
おまけ
その他用済みオブジェクトの削除方法
イメージ
docker image prune
コンテナ
docker container prune
ネットワーク
docker network prune
ボリューム以外全て
docker system prune
ボリューム含めて全て
docker system prune --volumes