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モードの有無など)も含まれ、トラブルシューティングの起点として機能します。