要查看 Docker 容器的资源占用排行,可以使用 docker stats
命令结合一些额外的选项和工具来实现。以下是一些具体的方法:
方法 1:使用 docker stats
命令
docker stats
命令可以实时显示所有容器的资源使用情况,包括 CPU、内存、网络 I/O 和磁盘 I/O。你可以通过以下命令查看资源占用情况:
docker stats
默认情况下,docker stats
会每隔 1 秒钟刷新一次输出内容,直到你按下 Ctrl + C
。
方法 2:按资源占用排序
如果你希望按资源占用排序,可以使用 --no-stream
选项并结合 sort
命令。以下是一些常用的排序命令:
按内存使用量排序
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}" | sort -k 2 -h
按 CPU 使用率排序
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}" | sort -k 2 -h
方法 3:使用 --format
自定义输出
你可以通过 --format
选项自定义输出内容,例如只显示容器名称和内存使用情况:
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}"
方法 4:使用第三方工具
如果你需要更详细的监控和可视化,可以使用第三方工具,如 Portainer 或 cAdvisor。
使用 Portainer
Portainer 是一个开源的 Docker 管理工具,提供了一个 Web 界面来监控和管理 Docker 容器。你可以通过以下命令安装 Portainer:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
访问 http://<your-server-ip>:9443
或 http://<your-server-ip>:9000
,你可以看到容器的资源使用情况。
使用 cAdvisor
cAdvisor 是一个开源的容器资源分析工具,可以监控容器内的资源使用情况并生成报告。你可以通过以下命令安装 cAdvisor:
docker run \--volume=/:/rootfs:ro \--volume=/var/run:/var/run:ro \--volume=/sys:/sys:ro \--volume=/var/lib/docker/:/var/lib/docker:ro \--publish=8080:8080 \--detach=true \--name=cadvisor \google/cadvisor:latest
访问 http://<your-server-ip>:8080
,你可以看到容器的资源使用情况。
示例命令
以下是一个完整的示例命令,按内存使用量排序并显示容器名称和内存使用情况:
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}" | sort -k 2 -h
输出示例
运行上述命令后,你将看到类似以下的输出:
NAME MEM USAGE
ybjgapi 128MiB / 1.942GiB
ldxc 64MiB / 1.942GiB
scmapi 32MiB / 1.942GiB
...
总结
通过上述方法,你可以轻松查看 Docker 容器的资源占用情况,并按需排序。如果你需要更高级的监控和可视化,可以考虑使用 Portainer 或 cAdvisor 等第三方工具。希望这些方法能帮助你更好地管理你的 Docker 容器!