目次

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 も短いプロセス名で表示されます。

関連する章

練習問題

練習: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日