🔖

【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