2026年9月21日
2026年9月21日
docker statsでコンテナのリソース使用量をリアルタイム監視する方法
はじめに
Dockerを使用しているシステム管理者は、リソース使用量を常に把握することが重要です。docker statsコマンドを使えば、コンテナのCPU利用率、メモリ消費量、ネットワーク帯域などをリアルタイムで監視できます。これはパフォーマンス管理や問題診断に非常に有用なツールです。
症状・背景
- コンテナが不正に使用しているリソースを特定する必要がある場合。
- サーバーの資源制限を超えてコンテナが動作していることを確認する必要がある場合。
- パフォーマンス問題を迅速に対応するために、リアルタイムで利用状況を把握する必要がある場合。
手順・設定方法
ステップ1: docker statsコマンドの実行
# コンテナ全体の状況を表示する
docker stats
このコマンドで、すべてのコンテナのCPU利用率、メモリ消費量、ネットワーク帯域などをリアルタイムで確認できます。
ステップ2: 特定のコンテナのみを監視
# IDか名前を指定して特定のコンテナのみを監視する
docker stats <コンテナID>
例えば、コンテナIDがabc1234567890である場合:
docker stats abc1234567890
これにより、指定されたコンテナのみの使用状況を表示します。
ステップ3: 監視結果を保存する
# 一定期間間隔で監視結果をファイルに保存する
docker stats --format "{{.Name}} {{.CPUPerc}} {{.MemUsage}}" -e --interval=10 > /path/to/stats.log
このコマンドで、コンテナ名、CPU利用率、メモリ使用量をログとして保存できます。
ステップ4: フィルタリングとカスタマイズ
# 出力フィルタリングやカスタマイズを行う
docker stats --no-stream --format "{{.Name}} {{.CPUPerc}}"
このコマンドで、ストリーミングを停止し、コンテナ名とCPU利用率のみを表示します。
注意事項
--no-streamオプションを使うと、実行中のデモンストレーションが停止します。- ログ保存の際は、適切な権限が必要です。
- 複数のコンテナを監視する場合は、並列で
docker statsコマンドを実行できます。
まとめ
1. 全コンテナの状況把握: docker statsコマンドを使って、すべてのコンテナのリソース使用量をリアルタイムで確認します。
2. 特定コンテナのみ監視: コンテナIDや名前を指定して、個別のコンテナに焦点を当てることができます。
3. ログ保存: 監視結果を定期的にファイルとして保存し、後から分析することが可能です。
4. カスタマイズとフィルタリング: 出力形式をカスタマイズしたり、特定のメトリックだけを表示するようにできます。
5. パフォーマンス管理: リソース使用状況を常に把握することで、システムパフォーマンスや問題の迅速な対応が可能になります。
関連記事: