docker stats 查看docker容器資源使用情況
1. 通過 docker stats 命令,獲取容器狀態,1秒刷新一次
docker stats
輸出結果:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b67619b9b90b test_v19 0.00% 61.48MiB / 15.42GiB 0.39% 220MB / 3.54MB 124MB / 9.18MB 2
822c904930d0 test_v18 0.00% 728KiB / 15.42GiB 0.00% 745kB / 0B 69.6kB / 0B 1
46063008a4ba test_v2 0.00% 1.641MiB / 15.42GiB 0.01% 1.29MB / 0B 9.24MB / 94.2kB 1
1d70b6bfa663 test_v1 0.00% 1.012MiB / 15.42GiB 0.01% 1.29MB / 0B 0B / 160kB 1
0f6cccf26d2a test_opencv_v18 0.00% 652KiB / 15.42GiB 0.00% 1.85MB / 0B 0B / 0B 1
e5a6fdc4a71f test_opencv_v17 0.00% 24.81MiB / 15.42GiB 0.16% 33MB / 30.8kB 187MB / 384MB 1
默認情況下,stats 命令會每隔 1 秒鐘刷新一次輸出的內容直到你按下 ctrl + c。
下面是輸出的主要內容:
- [CONTAINER]:以短格式顯示容器的 ID
- [CPU %]:CPU 的使用情況
- [MEM USAGE / LIMIT]:當前使用的內存和最大可以使用的內存
- [MEM %]:以百分比的形式顯示內存使用情況
- [NET I/O]:網絡 I/O 數據
- [BLOCK I/O]:磁盤 I/O 數據
- [PIDS]:PID 號
2. 通過 docker stats 命令,獲取容器狀態,只獲取一次結果
docker stats --no-stream
3. 通過 docker stats 命令,只查看某個容器的狀態
$ docker stats --no-stream test_opencv_v8
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
f53de4735f7e test_opencv_v8 0.00% 564KiB / 15.42GiB 0.00% 7.11MB / 0B 0B / 0B 1
4. 通過 docker stats 命令,按指定的格式獲取容器的資源信息
docker stats --no-stream --format “table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}”
$ docker stats --no-stream test_opencv_v8 --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
NAME CPU % MEM USAGE / LIMIT
test_opencv_v8 0.00% 564KiB / 15.42GiB
5. 通過 docker stats 命令,獲取容器狀態的 json 信息
docker stats --format “{“container”:”{{ .Container }}",“memory”:{“raw”:"{{ .MemUsage }}",“percent”:"{{ .MemPerc }}"},“cpu”:"{{ .CPUPerc }}"}"
$ docker stats --no-stream test_opencv_v8 --format "{\"container\":\"{{ .Container }}\",\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"cpu\":\"{{ .CPUPerc }}\"}"
{"container":"test_opencv_v8","memory":{"raw":"564KiB / 15.42GiB","percent":"0.00%"},"cpu":"0.00%"}