目錄

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 .}} 將指定容器的統計資料輸出為單行 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 容器一次,並以表格列出名稱與記憶體用量。

答案
docker stats --no-stream --format 'table {{.Name}}\t{{.MemUsage}}' small

常見問題

docker stats 如何只查一個容器?

在指令後指定容器名稱即可,例如 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,輸出就會列出這三個欄位。

更新於 2026年10月26日