Docker 中怎么对比两个容器的 docker stats 资源占用

落枫大大_5208

落枫大大_5208

2026-11-12

496人浏览

原创

对比两个容器的资源占用,最直接的方法是使用 docker stats 命令并配合 --no-stream 参数获取一次性快照,或者使用 docker inspect 提取历史数据。对于实时或准实时的对比,推荐使用 docker stats --format 结合 awk 等文本处理工具进行格式化输出,从而直观地看到 cpu、内存和 i/o 的差异。

Docker 中怎么对比两个容器的 docker stats 资源占用

如何使用 docker stats 一次性获取快照

要获取两个容器在特定时刻的资源使用情况,可以使用 docker stats --no-stream 命令。该命令会查询容器的当前状态并立即退出,非常适合脚本化操作或一次性对比。通过指定容器 ID 或名称,可以精确控制监控对象。

Docker 中怎么对比两个容器的 docker stats 资源占用

#!/bin/bash
# 定义要对比的两个容器名称
CONTAINER_A="web_app"
CONTAINER_B="db_service"

# 获取容器 A 的统计信息(无流式输出)
echo "Container A Stats:"
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}" $CONTAINER_A

# 获取容器 B 的统计信息
echo "\nContainer B Stats:"
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}" $CONTAINER_B

运行上述脚本后,你将得到两个容器在同一时刻的 CPU 百分比、内存使用量以及网络 I/O 的快照数据。这种方法简单直接,但需要注意,由于两次命令执行之间存在微小的时间差,数据并非绝对严格同步,但对于大多数对比场景已足够准确。

如何自动化对比多个容器的资源趋势

如果需要更持续的对比或自动化监控,可以编写一个简单的循环脚本,定期抓取 docker stats 的输出并进行解析。这种方法允许你记录随时间变化的资源消耗,从而识别出哪个容器在特定时间段内负载更高。通过自定义 --format 字符串,可以灵活地选择需要关注的指标。

Docker Cleanup Toolkit
Docker Cleanup Toolkit

Docker 资源清理、裁剪及磁盘使用分析工具包。检查容器、镜像、卷、网络、构建缓存使用情况并裁剪已停止的容器等。

下载

Docker 中怎么对比两个容器的 docker stats 资源占用

#!/bin/bash
# 持续监控并对比两个容器
while true; do
    # 清除屏幕
    clear
    echo "Time: $(date)"
    echo "========================"
    
    # 获取所有容器的统计信息,仅显示 Name, CPU, Memory
    docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" | grep -E "(NAME|web_app|db_service)"
    
    # 等待5秒后再次刷新
    sleep 5
done

这个脚本每5秒刷新一次屏幕,显示指定容器的最新资源占用情况。你可以将 grep 部分修改为你实际关心的容器名称。这种方式适合在终端中实时监控,便于快速发现资源异常波动的容器。通过观察连续几次的输出,你可以判断哪个容器更倾向于消耗更多资源。

基于 docker inspect 的历史资源分析

除了实时快照,docker inspect 可以提供更详细的容器配置和历史统计信息。虽然 docker stats 主要反映当前状态,但 docker inspect 中的 State 和 HostConfig 字段包含了容器的启动时间、重启次数以及资源限制设置。通过分析这些数据,可以推断容器的长期资源行为模式。例如,检查 HostConfig.Memory 可以了解容器的内存上限,而 State.StartedAt 可以帮助计算平均资源消耗的时间窗口。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

docker

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

805

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

6739

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

7897

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

3153

7

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

359

16

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

2026.03.31

491

14

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

2026.05.11

460

26

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

2026.05.15

345

24

Hyperf 项目部署运维与性能调优手册
Hyperf 项目部署运维与性能调优手册

聚焦 Hyperf 在生产环境的落地,包含 Docker 高效打包、Swoole 配置优化、常见的内存溢出(OOM)问题排查方法以及热更新方案。

2026.05.19

545

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Docker Desktop故障排查手册
Docker Desktop故障排查手册

共0课时 | 0人学习

Docker镜像构建手册
Docker镜像构建手册

共0课时 | 0人学习