1
1

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が重いと感じたときにまず確認すること

Posted at

Dockerを日常的に使っていると、「最近なんだか重いな」と感じる場面があるかと思います。
ビルドや起動に時間がかかったり、PC全体の動作が遅くなったりする場合は、Docker内部に不要なリソースが溜まっている可能性が高いです。

この記事では、Dockerの動作が重くなったときに確認すべきポイントや、よくある原因・対処方法・注意点について、実際のコマンド例とともにご紹介します。

1. まずは現在の使用状況を確認する

重くなった原因を探るためには、まずリソース使用状況の可視化が重要です。以下の2つのコマンドを使って、現状を把握しましょう。

docker system df

このコマンドでは、イメージ・コンテナ・ボリューム・ビルドキャッシュなどのディスク使用状況を確認できます。
特に「Reclaimable(再利用可能)」な容量が多い場合は、不要なデータが残っている可能性が高いです。

docker stats

こちらは、現在起動中のコンテナごとのCPU使用率・メモリ使用量・ネットワークIOなどをリアルタイムで確認できます。
一部のコンテナがリソースを過剰に消費していないか、チェックしましょう。

2. よくある原因

Dockerのパフォーマンスが低下する主な原因として、以下のようなケースが挙げられます。

未使用のイメージ・ボリューム・ビルドキャッシュの蓄積

Dockerでは、ビルド時に生成されるキャッシュや古いイメージ、停止済みのコンテナなどが自動で削除されることはありません。そのため、プロジェクトを繰り返しビルド・実行しているうちに、ディスク容量がどんどん消費されていきます。

特にdocker system dfで確認した際に、Reclaimableな容量が多い場合はこれが原因である可能性が高いです。

コンテナによる過剰なリソース消費

特定のコンテナが高負荷状態になっている場合、Docker全体の動作に影響を与えることがあります。
docker statsで、CPUやメモリを異常に消費しているプロセスがないか確認しましょう。

3. 解決方法:不要なリソースの削除

原因がある程度わかったら、不要なリソースを削除して環境をクリーンアップしましょう。

基本のクリーンアップ

docker system prune

このコマンドは、未使用のコンテナ・ネットワーク・ビルドキャッシュを削除します。
比較的安全に使用できますが、必要なリソースが削除されないよう注意が必要です。

全面的なクリーンアップ(より強力)

docker system prune -a --volumes

このコマンドは、未使用のイメージ・ボリュームも含めて一括削除します。
ディスク使用量を大幅に削減できますが、永続化されていたデータも削除される可能性があるため慎重に使用してください。

使用には十分注意してください

ビルドキャッシュのみを削除

docker builder prune

ビルド時に残ったキャッシュだけを削除したい場合は、こちらを使うと便利です。
ビルドの再実行に時間がかかることがありますが、容量の節約には効果的です。

4. クリーンアップ時の注意点

リソース削除は便利ですが、以下の点には十分注意しましょう。

本当に不要か確認してから削除する

間違って必要なボリュームやイメージを削除してしまうと、復旧が困難になることがあります。

永続化されたデータに注意

特にデータベースなど、ボリュームを使って保存しているデータは簡単に削除しないようにしましょう。

定期的なメンテナンスを習慣にする

ある程度の期間ごとに、状態を確認して不要なデータを整理しておくと、快適な開発環境を保てます。

まとめ

Dockerが重くなったときの対応は、以下の手順が基本です

🔍 確認コマンド一覧

🧪 コマンド 🎯 内容 🔐 安全性
docker system df イメージ・コンテナ・ボリューム・ビルドキャッシュの使用状況と再利用可能容量を確認 ✅ 安全
docker stats 起動中コンテナのCPU・メモリ使用状況をリアルタイムで確認 ✅ 安全
docker images -a ローカルに存在する全てのイメージ(使用中・未使用)を確認 ✅ 安全
docker volume ls ボリューム一覧を確認 ✅ 安全
docker buildx du ビルドキャッシュの使用状況を確認(BuildKit利用時) ✅ 安全

🧹 削除コマンド一覧

🧹 コマンド 🎯 内容 🔐 安全性
docker builder prune 未使用のビルドキャッシュを削除 ✅ 安全
docker image prune 未使用のイメージを削除(使用中のものは除外) ⚠️ 注意
docker system prune 停止中のコンテナ、未使用のネットワーク・ビルドキャッシュを削除 ⚠️ 注意
docker volume prune 未使用のボリュームを削除 ⚠️ 注意
docker system prune -a 使用していない全てのイメージも含めて削除 🚨 危険
docker system prune -a --volumes すべての未使用リソース(イメージ・ボリューム含む)を削除 🚨 危険
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?