CodeGym /Adesua ahorow /Docker SELF /內建的監控工具

內建的監控工具

Docker SELF
等級 21 , 課堂 2
開放

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。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION