みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Dockerのコンテナやボリューム,イメージの一括削除

結論

docker system prune --all --volumes

docker system prune

docker system prune

docker system prune ならば,停止したコンテナ,ネットワーク,宙ぶらりんイメージ(dangling image)を一括で削除します.--allオプションを追加するとイメージも一括で削除します.--volumesオプションを追加すると,ボリュームも一括で削除します.

$ docker system prune --all --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all volumes not used by at least one container
  - all images without at least one container associated to them
  - all build cache

実際に実行してみた

数ヶ月間様々なプロジェクトを扱って,たくさんの使わなくなったイメージやキャッシュが残っている docker 環境で実行してみました.

$ df -H
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p2  250G   45G  193G  19% /
...
$ docker system prune -a --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all volumes not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y
...
Total reclaimed space: 14.84GB
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p2  250G   18G  220G   8% /

再生された容量は 15 GB と表示されましたが,システム上は 27 GB 空きました.

部屋の大掃除は時間と体力と根気が要求されますが,Docker の大掃除は必要なファイルを退避させてからコマンド1個で完了するので簡単です.