Dockerシステムクリーンアップとディスク容量
Docker pruneコマンドでディスク容量を解放。コンテナ、イメージ、ボリューム、ネットワーク、ビルドキャッシュのクリーンアップ方法とDockerディスク使用量の監視を学びます。
System
詳細な説明
ディスク使用量の確認
まずDockerが何を消費しているかを把握します:
docker system df
イメージ、コンテナ、ボリューム、ビルドキャッシュの使用量が表示されます:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 45 12 12.5GB 8.2GB (65%)
Containers 15 3 256MB 200MB (78%)
Local Volumes 8 4 3.1GB 1.5GB (48%)
Build Cache 120 0 5.8GB 5.8GB (100%)
最終手段: docker system prune
# 停止済みコンテナ、未使用ネットワーク、ダングリングイメージ、ビルドキャッシュを削除
docker system prune
# 未使用イメージもすべて削除(ダングリングだけでなく)
docker system prune -a
# ボリュームも削除(危険: データが削除されます!)
docker system prune -a --volumes
# 確認プロンプトをスキップ
docker system prune -a -f
対象を絞ったクリーンアップ
より細かく制御するには、特定のリソースタイプをpruneします:
# 停止済みコンテナを削除
docker container prune
# ダングリングイメージを削除
docker image prune
# 未使用イメージをすべて削除
docker image prune -a
# 未使用ボリュームを削除
docker volume prune
# 未使用ネットワークを削除
docker network prune
# ビルドキャッシュを削除
docker builder prune
# 24時間以上前のビルドキャッシュを削除
docker builder prune --filter "until=24h"
自動クリーンアップスクリプト
#!/bin/bash
# 週次クリーンアップスクリプト
echo "クリーンアップ前のDockerディスク使用量:"
docker system df
docker container prune -f
docker image prune -a -f --filter "until=168h"
docker volume prune -f
docker builder prune -f --filter "until=168h"
echo "クリーンアップ後のDockerディスク使用量:"
docker system df
ユースケース
開発マシンやCI/CDランナーのディスク容量の回復、ビルドサーバーの自動クリーンアップcronジョブの設定、Docker環境での「no space left on device」エラーのトラブルシューティング。