Docker 環境診断とリソース監視コマンド集

Docker の運用状況を把握するには、各種情報取得コマンドを正しく活用することが不可欠です。以下に、実行環境の確認、構成の可視化、リソース使用量のモニタリング、および不要データの整理に役立つ主要なコマンドを体系的に解説します。

バージョンとランタイム情報の確認

docker version はクライアントとデーモン双方のバージョン、API互換性、ビルド情報、および関連コンポーネント(containerd、runc、docker-init)の詳細を表示します。この出力はアップグレード計画や互換性検証に直接利用可能です。

ホスト全体のDocker構成を一覧表示

docker info はシステムレベルの設定を網羅的に提供します。コンテナ・イメージ数、ストレージドライバー(例:overlay2)、Cgroupバージョン、セキュリティオプション(apparmor/seccomp)、ネットワークプラグイン、およびハードウェアリソース(CPU/メモリ)の割り当て状況が含まれます。クラスタ構成(Swarm有効/無効)も明示されるため、分散環境の初期診断に有用です。

オブジェクトの内部構造を詳細に調査

docker inspect はコンテナ、イメージ、ボリュームなど任意のDockerエンティティのJSON形式の内部属性を返します。特に--formatオプションでGoテンプレートを指定することで、特定フィールドのみ抽出できます。例えば、コンテナのIPアドレスを取得するには:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx-app

また--typeで対象タイプを明示すれば、名前衝突時の誤操作を防げます。

実行中のログ出力をリアルタイムで追跡

docker logs コマンドでコンテナの標準出力/標準エラーを参照できます。-fフラグでストリーミング表示、--sinceや--tailで時間範囲や行数を制限可能です。ログファイルの物理パスは/var/lib/docker/containers/<ID>/<ID>-json.logに存在し、--log-opt max-size=10m --log-opt max-file=5のように起動時に制御することで、ディスク枯渇を未然に防止できます。

稼働中のコンテナリソース使用率を継続監視

docker stats はCPU利用率、メモリ使用量(KB/MB/GB単位)、ネットワークI/O(受信/送信バイト)、およびブロックI/Oをリアルタイムで更新表示します。カスタムフォーマットで特定指標のみ表示可能で、CI/CDパイプラインでの自動監視にも応用できます:

docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}" --no-stream nginx-app

ストレージ消費状況の分析とクリーンアップ

docker system df は各コンポーネント(イメージ、コンテナ、ボリューム、ビルドキャッシュ)のディスク占有量と回収可能サイズを報告します。これに基づき、docker system pruneで停止済みコンテナやダングリングイメージを削除できます。ボリュームを含む完全クリーンアップには--volumesフラグを追加します。さらに--allを付与すれば、未使用のすべてのイメージ(タグ付き含む)が対象になります。

システム構成の包括的情報取得

docker system info はdocker infoと同様の情報を提供しますが、より簡潔な構造で、CIツールや監視スクリプトとの統合に適しています。出力にはDocker Root Directoryの場所やセキュリティ関連設定(rootlessモードの有無など)も含まれ、トラブルシューティングの起点として機能します。

タグ: docker-cli container-observability Resource-Monitoring disk-cleanup logging-configuration

10月2日 19:43 投稿