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」エラーのトラブルシューティング。

試してみる — Docker CLI Reference

フルツールを開く