Docker for Macのディスクイメージ容量を救いたい

Docker for MacのDisk image sizeの残容量が少なくなるとパフォーマンスが低下するようです。

そのために不要なイメージやコンテナなどを一括で削除するコマンドがあります。

f:id:ingnis:20210719155423p:plain
docker for mac

参考サイト https://docs.docker.jp/config/pruning.html

イメージの削除

docker image prune

タグ無しのイメージを削除します。buildをしてイメージが更新された場合は古いイメージはタグ無しのイメージになり不要なイメージが増えていきます。

もしくは

docker image prune -a

既存のコンテナで使われていないイメージを全て削除します。タグ無しの他に、タグ有りでも現在コンテナで未使用のイメージを削除します。

ボリュームの削除

docker volume prune

コンテナで未使用のボリュームを全て削除します。 実行するときは、消したくないボリュームのコンテナが存在しているかを確認してください。存在していない場合そのボリュームは削除されます。

コンテナの削除

docker container prune

停止している全てのコンテナを削除します。消したくないコンテナを同時に稼働できない場合は使いづらいコマンドとなります。

まとめて消したい場合

綺麗サッパリ消したい場合は以下のコマンドを実行してください。

docker system prune

イメージ、コンテナ、ネットワークを削除します。

ボリュームも消したい場合は、--volumeオプションを付けます。

イメージ→コンテナ→ネットワーク→ボリュームの順で削除されるのでタグ付きイメージ以外全て削除されます。

docker system prune --volume

私が月イチくらいでやっていること

まず、不要なイメージを削除して

docker image prune -a

一旦コンテナをすべて削除します。

docker container prune

ボリュームを削除したくないコンテナを全て作成します。

docker-compose upなど

コンテナを作成してからボリュームを削除します。

docker volume prune

他には、なるべく名無しボリュームを作成しないようにします。名無しボリュームはコンテナが作成されるたびに新しいボリュームが作成されるので容量を圧迫しやすいです、名前付きにしておくとコンテナが作成時に既存名前付きボリュームが使用されます。