目次
docker stats コマンド入門:リアルタイムのリソース使用量を確認する(--no-stream、--format)
docker stats はコンテナのリアルタイムのリソース使用量を表示します。プロセスの確認とデバッグの流れについては、ログの確認とデバッグを参照してください。
構文
docker stats [オプション] [コンテナ...]
docker top コンテナ [ps オプション]
オプション
| オプション | 説明 |
|---|---|
-a, --all | すべてのコンテナを表示します(デフォルトでは実行中のコンテナのみを表示) |
--format テンプレート | カスタムテンプレートで出力します。table、table テンプレート、json、または Go テンプレートを使用できます |
--no-stream | ストリーミングを停止し、最初の結果だけを取得します |
--no-trunc | 出力を切り詰めません |
docker top の構文では ps オプションを指定できます。以下の例では -o を使って表示するプロセス項目を指定します。
例
すべてのコンテナ、または指定したコンテナを一度に確認する
$ docker stats --no-stream
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
0c009f73010b small 0.00% 716KiB / 64MiB 1.09% 628B / 126B 381kB / 0B 1
f3e514c09baa busy 43.08% 1.289MiB / 1.919GiB 0.07% 796B / 126B 1.83MB / 0B 1
63b9a2f9c63f web 0.00% 4.43MiB / 1.919GiB 0.23% 838B / 126B 8.95MB / 8.19kB 2
35357aad74b1 registry 2.01% 13.19MiB / 1.919GiB 0.67% 3.89MB / 19.6kB 135MB / 3.92MB 5
$ docker stats --no-stream web
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
63b9a2f9c63f web 0.00% 3.812MiB / 1.919GiB 0.19% 838B / 126B 8.95MB / 8.19kB 2
--no-streamは最初の結果だけを取得し、画面を更新し続けません。- コンテナを指定しないと、実行中のコンテナが複数表示されます。
webを指定すると、そのコンテナだけが表示されます。 MEM USAGE / LIMITは使用量と上限を表示します。smallの上限は64MiBで、ほかの例のコンテナでは1.919GiBと表示されています。NET I/OとBLOCK I/Oはそれぞれネットワークとブロック I/O を示し、PIDSはプロセス数を示します。
テーブルテンプレートまたは JSON で出力する
$ docker stats --no-stream --format 'table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}'
NAME CPU % MEM USAGE / LIMIT
small 0.00% 616KiB / 64MiB
busy 42.14% 936KiB / 1.919GiB
web 0.00% 3.723MiB / 1.919GiB
registry 0.31% 14.1MiB / 1.919GiB
$ docker stats --no-stream --format '{{json .}}' small
{"BlockIO":"381kB / 0B","CPUPerc":"0.00%","Container":"small","ID":"0c009f73010b","MemPerc":"0.79%","MemUsage":"516KiB / 64MiB","Name":"small","NetIO":"698B / 126B","PIDs":"1"}
tableテンプレートは項目名を生成します。この例では名前、CPU 使用率、メモリ使用量だけを選択しています。{{json .}}は、指定したコンテナの統計情報を 1 行の JSON として出力します。- 使用量はサンプリングごとに変わります。
smallのテーブル結果と JSON 結果は、どちらも上限が64MiBと表示されていますが、メモリ使用量は異なります。
コンテナのプロセスとカスタム項目を確認する
$ docker top web
PID USER TIME COMMAND
2315 root 0:00 nginx: master process nginx -g daemon off;
2351 101 0:00 nginx: worker process
$ docker top web -o pid,user,comm
PID USER COMMAND
2315 root nginx
2351 101 nginx
docker topはコンテナ内で実行中のプロセスを一覧表示します。デフォルトの結果には PID、ユーザー、時間、完全なコマンドが含まれます。-o pid,user,commで項目を指定すると、結果から TIME が省略され、COMMAND も短いプロセス名で表示されます。
関連する章
- ログの確認とデバッグ
- docker ps コマンド:コンテナを一覧表示する
- docker inspect コマンド:コンテナの詳細情報を確認する
- コンテナのライフサイクル
練習問題
練習:small コンテナを 1 回だけ確認し、名前とメモリ使用量をテーブルで表示してください。
解答
docker stats --no-stream --format 'table {{.Name}}\t{{.MemUsage}}' small
よくある質問
docker stats でコンテナを 1 つだけ確認するには?
コマンドの後にコンテナ名を指定します。たとえば docker stats --no-stream web とすると、出力には web だけが含まれます。
docker stats の MEM USAGE / LIMIT とは何ですか?
メモリ使用量と上限を表示します。例の small は 716KiB / 64MiB と表示され、64MiB の上限を確認できます。
docker top で PID、USER、COMMAND だけを表示するには?
docker top web -o pid,user,comm を使うと、この 3 つの項目が出力されます。
更新日 2026年10月26日