查看docker容器的内存占用

本文介绍了一种通过获取容器内的进程PID,进而使用top、pmap等命令来精确监控Docker容器内存占用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用docker stats命令可以查看容器的内存,但是有时候docker stats命令获得的数据可能准确,可以参考下面这种方式

先通过docker ps -a 找到容器的container id
在这里插入图片描述

再使用ps -ef 找到容器对应的进程
在这里插入图片描述

获得容器对应的pid后,就可以使用top、pmap、ps等查看进程内存的命令查看容器的内存占用情况了

  1. top
    top -p 5140
    内容解释

    PID:进程的ID
    USER:进程所有者
    PR:进程的优先级别,越小越优先被执行
    NInice:值
    VIRT:进程占用的虚拟内存
    RES:进程占用的物理内存
    SHR:进程使用的共享内存
    S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
    %CPU:进程占用CPU的使用率
    %MEM:进程使用的物理内存和总内存的百分比
    TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
    COMMAND:进程启动命令名称

  2. pmap
    pmap -d 5140

    在这里插入图片描述

  3. ps
    ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 5140
    在这里插入图片描述
    其中rsz为实际内存

### Docker 容器资源占用查看与磁盘清理方法 #### 查看 Docker 容器的资源占用 为了监控 Docker 容器的资源使用情况,可以利用 `docker stats` 命令实时显示各个容器的 CPU、内存、网络 I/O 和磁盘 I/O 的使用状况。此命令提供了一个动态视图以便于管理员分析性能瓶颈。 ```bash docker stats ``` 上述命令能够持续更新并展示每个运行中的容器的关键指标数据[^1]。如果需要更详细的统计信息或者针对特定时间段的历史记录,则可能需要借助第三方工具或集成 Prometheus/Grafana 这样的监控解决方案。 #### 清理 Docker 占用的磁盘空间 当发现系统磁盘被大量消耗时,可以通过多种方式减少由 Docker 所带来的存储压力: ##### 使用 `docker system prune` 自动化清理 最简单有效的方式就是执行 `docker system prune` 来移除所有未使用的对象,包括停止状态下的容器、孤立的数据卷以及悬空(dangling)镜像等。 基本形式如下所示: ```bash docker system prune ``` 它只会清除那些完全闲置的对象而不会影响当前正在运作的服务实例[^2]。 对于更为激进式的全面清扫操作,可追加 `-a|--all` 参数连同任何未曾启动过的镜像也一并销毁;另外加上 `--volumes` 开关还能额外处理掉多余的挂载点文件夹结构。 ```bash docker system prune -a --volumes ``` 不过需要注意的是,在生产环境中应用此类指令前务必确认其潜在风险,并做好充分准备以防误删重要资料[^3]。 ##### 查询具体的磁盘分配详情 除了直接动手整理之外,事先摸清现状同样至关重要。“Docker System DF” 功能正好满足这一需求——允许我们直观地了解到整个平台内部各类组件所占据的实际容量大小及其分布特征。 ```bash docker system df [options] ``` 该功能有助于识别哪些部分占用了过多的空间从而制定更有针对性的管理策略。 --- ### 总结 综上所述,通过组合运用以上提到的各种技术和手段,不仅可以有效地监测到每一个单独进程的行为表现,而且还可以及时回收冗余资产进而维持整体环境健康稳定运转的状态之中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值