0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker Pruneコマンド完全ガイド

Posted at

概要

Dockerのpruneコマンドは、未使用のリソースを削除してシステムをクリーンアップするための強力なツールです。Dockerで困った時の「一からやり直し」の定番コマンドとして知られています。

主要なPruneコマンド

1. docker system prune - 全体的なクリーンアップ

最も包括的なクリーンアップコマンドです。

# 基本的なクリーンアップ(確認プロンプトあり)
docker system prune

# 強制的にクリーンアップ(確認なし)
docker system prune -f

# すべての未使用イメージも削除
docker system prune -a

# ボリュームも含めて完全クリーンアップ
docker system prune -a --volumes

削除対象:

  • 停止したコンテナ
  • 使用されていないネットワーク
  • ダングリングイメージ(タグなし)
  • ビルドキャッシュ

2. docker container prune - コンテナ専用

docker container prune -f

削除対象: 停止したコンテナのみ

3. docker image prune - イメージ専用

# ダングリングイメージのみ削除
docker image prune -f

# すべての未使用イメージを削除
docker image prune -a -f

4. docker network prune - ネットワーク専用

docker network prune -f

削除対象: 使用されていないネットワーク

5. docker volume prune - ボリューム専用

docker volume prune -f

削除対象: 使用されていないボリューム

問題解決のためのPrune戦略

軽度の問題 → 個別prune

# ネットワーク問題
docker network prune -f

# コンテナ問題
docker container prune -f

# イメージ問題
docker image prune -f

中度の問題 → system prune

# 基本的なクリーンアップ
docker system prune -f

# より徹底的なクリーンアップ
docker system prune -a -f

重度の問題 → 完全リセット

# すべてを削除(ボリューム含む)
docker system prune -a --volumes -f

# さらに徹底的に
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
docker volume rm $(docker volume ls -q)

現在の状況確認

クリーンアップ前に現在の状況を確認しましょう:

# システム全体の使用状況
docker system df

# 詳細な情報
docker system df -v

# コンテナ一覧
docker ps -a

# イメージ一覧
docker images

# ネットワーク一覧
docker network ls

# ボリューム一覧
docker volume ls

安全なクリーンアップ手順

1. 状況確認

docker system df

2. 軽度のクリーンアップ

docker system prune -f

3. 必要に応じてイメージも削除

docker system prune -a -f

4. 最終手段としてボリュームも削除

docker system prune -a --volumes -f

注意点

--volumesフラグの注意

# 危険!データが失われる可能性
docker system prune -a --volumes -f
  • 名前付きボリュームのデータも削除される
  • データベースのデータが失われる可能性
  • 重要なデータがある場合は事前にバックアップを取る

安全な使用のためのチェックリスト

  • 重要なコンテナが停止していないか確認
  • 必要なデータのバックアップを取得
  • 使用中のボリュームがないか確認
  • 本番環境では慎重に実行

よくある使用シナリオ

開発環境のリセット

# 開発環境を完全にリセット
docker-compose down
docker system prune -a --volumes -f
docker-compose up -d --build

ディスク容量不足の解決

# 容量確認
docker system df

# クリーンアップ
docker system prune -a -f

ネットワーク問題の解決

# ネットワーク関連の問題
docker-compose down
docker network prune -f
docker-compose up -d

イメージの整理

# 未使用イメージの削除
docker image prune -a -f

トラブルシューティング

よくあるエラーと対処法

1. ネットワークが見つからないエラー

Error response from daemon: failed to set up container networking: network xxx not found

対処法:

docker-compose down
docker network prune -f
docker-compose up -d

2. ポートが既に使用されているエラー

Error response from daemon: driver failed programming external connectivity on endpoint

対処法:

docker container prune -f
docker-compose up -d

3. イメージビルドエラー

failed to solve: process "/bin/sh -c xxx" did not complete successfully

対処法:

docker system prune -f
docker-compose build --no-cache

まとめ

Pruneコマンドの利点

  • ディスク容量の節約
  • システムの安定性向上
  • 環境のリセット
  • 問題の根本解決

使用タイミング

  • 開発環境のリセット
  • ディスク容量不足
  • ネットワーク/コンテナの問題
  • イメージの整理
  • システムの不安定化

推奨される使用パターン

  1. 軽度の問題 → 個別prune
  2. 中度の問題 → system prune
  3. 重度の問題 → 完全リセット

Dockerで困った時の「一からやり直し」の強力なツールとして、pruneコマンドを活用しましょう!

なお、prune系コマンドは「未使用リソースを自動で一括削除」したいときに便利です。一方、rmやrmiコマンドは「特定のコンテナやイメージなどを個別に削除」したい場合に使います。状況に応じて使い分けましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?