3.1 docker stats 指令
Docker 提供了一個即時監控容器的內建工具 —— 指令 docker stats
。這個指令可以用來追蹤容器的主要性能指標,例如 CPU、記憶體、網路和磁碟的使用情況。讓我們來看看如何使用 docker stats,來了解你的容器的狀態和性能。
指令 docker stats
提供了即時的容器運行統計數據。它顯示以下每個容器的指標:
- CPU %:容器的 CPU 使用百分比。
- MEM USAGE / LIMIT:容器的記憶體使用量及其限制。
- MEM %:容器的記憶體使用百分比。
- NET I/O:網路流量(進入和傳出)。
- BLOCK I/O:磁碟的輸入/輸出操作次數。
- PIDS:容器內運行的進程數量。
指令 docker stats
的基本用法
執行沒有參數的 docker stats
指令會顯示所有正在運行的容器的指標:
Terminal
docker stats
docker stats
指令的輸出示例:
Terminal
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d9b100f2f636 my_nginx 0.07% 1.24MiB / 1.952GiB 0.06% 1.68kB / 0B 0B / 12.3MB 2
fa3f3f3f3f3f my_postgres 2.13% 230.5MiB / 1.952GiB 11.52% 2.12MB / 2.05MB 85.6MB / 45.2MB 10
監控特定容器
你可以通過指定容器的名稱或 ID 來監控某個特定容器的指標:
Terminal
docker stats my_nginx
3.2 docker stats
指令的設定
docker stats
指令的參數
docker stats
指令支援一些參數選項,讓你可以調整資料的輸出方式:
--all
或-a
: 顯示所有容器的指標資料,包括已停止的容器。--no-stream
: 僅顯示一次指標資料,並結束指令執行。--format
: 使用模板來格式化輸出的資料。
使用 --no-stream
參數範例
一次顯示所有容器的指標資料:
Terminal
docker stats --no-stream
使用 --format
參數範例
格式化輸出的資料:
Terminal
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
輸出範例:
Terminal
CONTAINER ID CPU % MEM USAGE / LIMIT
d9b100f2f636 0.07% 1.24MiB / 1.952GiB
fa3f3f3f3f3f 2.13% 230.5MiB / 1.952GiB
3.3 實際應用 docker stats
範例 1: 追蹤伺服器負載
你可以使用 docker stats 來監控伺服器上的容器,識別出高 CPU 或記憶體負載的容器。這可以幫助你優化資源使用並提升應用程式的效能。
Terminal
docker stats
範例 2: 測試期間監控特定容器
在測試應用程式的新版本或修改配置時,你可以追蹤特定容器的指標,確保對效能沒有負面影響。
Terminal
docker stats my_test_container
範例 3: 與監控系統整合
你可以將 docker stats
的輸出與外部監控系統整合,使用 --format
選項來創建與你的監控工具相容的輸出格式。
Terminal
docker stats --no-stream --format "{{.Container}}: CPU {{.CPUPerc}}, MEM {{.MemUsage}}"
docker stats 命令的限制
雖然 docker stats
提供有用的即時指標,但也有一些限制:
- 有限的指標: 此命令僅顯示基本指標,無法提供容器狀態的詳細資訊。
- 手動操作: docker stats 適合手動使用,但對於自動化監控和警報建議使用專業工具,例如 Prometheus 和 Grafana。
GO TO FULL VERSION