読者です 読者をやめる 読者になる 読者になる

座敷牢日誌

都落ちした元SEがソフトウェアやネット関連のことを書いています

Dockerの不要なボリュームを削除する

Dockerを, Docker自体の勉強や検証用途で使っているため, 使わなくなったコンテナやイメージをどんどん削除しているが, ときどきDocker関連ファイルの容量を調べると増える一方だったりする. Docker関連ファイルの置き場が /var/lib/docker なら, # du -hs /var/lib/dockeer を実行するとフォルダ配下の容量の合計を調べられる.

コンテナを削除するために, # docker rm CONTAINER-ID を実行しても, ボリュームは削除されないのだ.

コンテナと一緒にボリュームを削除するためには, # docker rm -v CONTAINER-ID とオプション -v を付与して実行する必要がある.

どのコンテナでも使われていないボリュームをまとめて削除したい場合は, 次のコマンドを実行する.

# docker volume ls -f "dangling=true" -q | xargs docker volume rm
  • docker volume はボリュームを操作するためのサブコマンド
  • ls で存在するボリュームのリストを表示する
  • -f "dangling=true" はフィルタオプションで, "dangling=true" はどのコンテナにも紐付いていないボリュームを抽出する. コンテナを一覧表示するための docker ps コマンドや, イメージを表示する docker images コマンドにもフィルタオプションはある (もちろん指定できる抽出条件は少し違う)

  • -q オプションはボリュームIDだけを表示させる指定で, このオプションも docker ps コマンド, docker images コマンドに存在する

  • docker volume rm で指定したボリュームを削除できる

このコマンドで使われていないボリュームのIDを抽出し, パイプした先でボリュームを削除している.

広告を非表示にする