🔖
【Docker】docker system prune で不要リソースをまとめて削除する方法
はじめに
Docker を使って開発を続けていると、
- 停止したままのコンテナ
- 使われていないイメージ
- 古いネットワークやボリューム
といった 不要なリソース が蓄積されていきます。
これらはディスク容量を圧迫し、開発環境を重くする原因になります。
そんなときに役立つのが docker system prune コマンドです。
本記事では、このコマンドの使い方と注意点を整理します。
docker system prune の基本
docker system prune は、Docker 全体で使われていないリソースをまとめて削除するコマンドです。
docker system prune
実行すると確認メッセージが表示され、y を入力すると削除が始まります。
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- unused build cache
Are you sure you want to continue? [y/N]
削除前の確認方法
削除する前に、どれくらいのリソースが溜まっているか確認することができます。
docker system df
実行例:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 10 2 2.5GB 1.8GB (72%)
Containers 5 1 100MB 80MB (80%)
Local Volumes 3 1 500MB 400MB (80%)
Build Cache 20 0 1.2GB 1.2GB (100%)
RECLAIMABLE の列が、削除可能なサイズを示しています。
削除対象になるもの
- 停止中のコンテナ
- 未使用のネットワーク(少なくとも1つのコンテナで使われていないもの)
-
ダングリングイメージ(
docker imagesで<none>と表示される不要なイメージ) - ビルドキャッシュ
主なオプション
-a / --all
未使用のイメージも含めて削除します。
docker system prune -a
--volumes
未使用のボリュームも削除します。
docker system prune --volumes
-f / --force
確認メッセージなしで削除します。
docker system prune -af
docker builder prune との違い
-
docker builder prune→ ビルドキャッシュ限定で削除 -
docker system prune→ コンテナ・ネットワーク・ダングリングイメージ・キャッシュを 一括削除
おわりに
docker system prune は、開発環境の不要なリソースをまとめて削除できる便利なコマンドです。
ただし、削除範囲が広いため 必要なリソースまで消える可能性がある 点には注意が必要です。
-
安全に整理したいとき →
docker system prune -
ディスク容量を一気に空けたいとき →
docker system prune -af --volumes
用途に応じて使い分ければ、Docker 環境をすっきり保つことができます。
本記事が参考になれば幸いです。
🔗関連記事
Discussion