Docker运维篇

要查看 Docker 容器的资源占用排行,可以使用 docker stats 命令结合一些额外的选项和工具来实现。以下是一些具体的方法:

方法 1:使用 docker stats 命令

docker stats 命令可以实时显示所有容器的资源使用情况,包括 CPU、内存、网络 I/O 和磁盘 I/O。你可以通过以下命令查看资源占用情况:

bash 复制代码
docker stats

默认情况下,docker stats 会每隔 1 秒钟刷新一次输出内容,直到你按下 Ctrl + C

方法 2:按资源占用排序

如果你希望按资源占用排序,可以使用 --no-stream 选项并结合 sort 命令。以下是一些常用的排序命令:

按内存使用量排序
bash 复制代码
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}" | sort -k 2 -h
按 CPU 使用率排序
bash 复制代码
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}" | sort -k 2 -h

方法 3:使用 --format 自定义输出

你可以通过 --format 选项自定义输出内容,例如只显示容器名称和内存使用情况:

bash 复制代码
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}"

方法 4:使用第三方工具

如果你需要更详细的监控和可视化,可以使用第三方工具,如 PortainercAdvisor

使用 Portainer

Portainer 是一个开源的 Docker 管理工具,提供了一个 Web 界面来监控和管理 Docker 容器。你可以通过以下命令安装 Portainer:

bash 复制代码
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>:9443http://<your-server-ip>:9000,你可以看到容器的资源使用情况。

使用 cAdvisor

cAdvisor 是一个开源的容器资源分析工具,可以监控容器内的资源使用情况并生成报告。你可以通过以下命令安装 cAdvisor:

bash 复制代码
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,你可以看到容器的资源使用情况。

示例命令

以下是一个完整的示例命令,按内存使用量排序并显示容器名称和内存使用情况:

bash 复制代码
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 容器!

相关推荐
运维闲章印时光3 分钟前
网络断网、环路、IP 冲突?VRRP+MSTP+DHCP 联动方案一次性解决
运维·服务器·开发语言·网络·php
ARTHUR-SYS11 分钟前
基于Kali linux 安装pyenv及简单使用方法及碰到的问题
linux·运维·chrome
苹果醋319 分钟前
数据结构其一 线性表
java·运维·spring boot·mysql·nginx
CIb0la25 分钟前
微软宣布 Windows 11 v25H2 GA
运维·安全·生活
java干货1 小时前
我用Nginx做了负载均衡,还需要API网关吗?
运维·nginx·负载均衡
IvanCodes2 小时前
十五、深入理解 SELinux
linux·运维·服务器
alenliu06212 小时前
在 Ubuntu22.04 进行envoy沙盒实验
docker·envoy·ubuntu22.04
对着晚风做鬼脸4 小时前
MySQL 运维知识点(十六)---- 读写分离
运维·数据库·mysql·adb
Rsingstarzengjx7 小时前
搭建Jenkins gitlab 环境
运维·服务器
君之嘞10 小时前
【操作系统基础】认识操作系统:系统调用
linux·运维·microsoft