目錄
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 也以較短的程序名稱呈現。
相關章節
- 查看日誌與除錯
- docker ps 指令:列出容器
- docker inspect 指令:查看容器詳細資訊
- 容器生命週期
動手練習
練習:只查詢 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日