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%"}