Docker统计容器数量并对内存和CPU资源占用情况进行统计排序【测试成功】

艺帆风顺 发布于 2025-04-03 21 次阅读


一、需求背景

    服务器的docker容器太多,需要对特定容器查看资源占用情况并对其进行优化处理。

二、具体命令

    1、统计docker容器的数量

        要统计正在运行的 Docker 容器的数量:docker ps | wc -l

            统计包括停止状态的容器:docker ps -a | wc -l

    2、统计docker容器内存占用情况,并按占用从大到小进行排序

 docker stats --no-stream --format "table {{.Container}}t{{.Name}}t{{.CPUPerc}}t{{.MemUsage}}" | sort -k4 -rh

    [root@JumpServer ~]# docker stats --no-stream --format "table {{.Container}}t{{.Name}}t{{.CPUPerc}}t{{.MemUsage}}" | sort -k4 -rh57c14913cec5 jms_core 0.75% 531.3MiB / 1.892GiB3ea8a8455053 jms_celery 0.49% 227.3MiB / 1.892GiBb099024a1c9a jms_chen 0.23% 92.78MiB / 1.892GiB2e906bf8f03d jms_lion 0.19% 45.88MiB / 1.892GiB99e17b610e27 jms_mysql 0.01% 41.98MiB / 1.892GiBaeb966ab9d4f jms_koko 0.02% 34.57MiB / 1.892GiB4b66c075d4f0 jms_magnus 0.21% 29.28MiB / 1.892GiB5d58b39fb9f3 dm8_01 0.05% 26.13MiB / 1.892GiB56ad69d2fcef jms_kael 0.20% 24.02MiB / 1.892GiBfcecf0549778 portainer 0.00% 16.62MiB / 1.892GiB7cca8a628684 jms_redis 0.12% 10.3MiB / 1.892GiB425e7a3a732e jms_web 2.36% 5.191MiB / 1.892GiB

        3、统计docker容器CPU占用情况,并按占用从大到小进行排序

     docker stats --no-stream --format "table {{.Container}}t{{.Name}}t{{.CPUPerc}}" | sort -k3 -rh

      [root@JumpServer ~]# docker stats --no-stream --format "table {{.Container}}t{{.Name}}t{{.CPUPerc}}" | sort -k3 -rh57c14913cec5 jms_core 0.57%3ea8a8455053 jms_celery 0.27%2e906bf8f03d jms_lion 0.18%7cca8a628684 jms_redis 0.11%b099024a1c9a jms_chen 0.09%5d58b39fb9f3 dm8_01 0.04%425e7a3a732e jms_web 0.03%aeb966ab9d4f jms_koko 0.01%99e17b610e27 jms_mysql 0.01%fcecf0549778 portainer 0.00%CONTAINER NAME CPU %56ad69d2fcef jms_kael 0.00%4b66c075d4f0 jms_magnus 0.00%