Docker for MacのDisk image sizeの残容量が少なくなるとパフォーマンスが低下するようです。
そのために不要なイメージやコンテナなどを一括で削除するコマンドがあります。
参考サイト 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
他には、なるべく名無しボリュームを作成しないようにします。名無しボリュームはコンテナが作成されるたびに新しいボリュームが作成されるので容量を圧迫しやすいです、名前付きにしておくとコンテナが作成時に既存名前付きボリュームが使用されます。