查看 docker 容器使用的资源

2023-11-10

在容器的使用过程中,如果能及时的掌握容器使用的系统资源,无论对开发还是运维工作都是非常有益的。幸运的是 docker 自己就提供了这样的命令:docker stats。

默认输出

docker stats 命令用来显示容器使用的系统资源。不带任何选项执行 docker stats 命令:

$ docker stats

默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:
[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。 
[PIDS]:PID 号。

只返回当前的状态

如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态:

$ docker stats --no-stream

这样输出的结果就不会变化了,看起来省劲不少。

只输出指定的容器

如果我们只想查看个别容器的资源使用情况,可以为 docker stats 命令显式的指定目标容器的名称或者是 ID:

$ docker stats --no-stream registry 1493

当有很多的容器在运行时,这样的结果看起来会清爽一些。这里的 registry 和 1493 分别是容器的名称和容器的 ID。注意,多个容器的名称或者是 ID 之间需要用空格进行分割。

细心的同学可能已经发现了,第一列不再显示默认的容器 ID,而是显示了我们传入的容器名称和 ID。基于此,我们可以通过简单的方式使用容器的名称替代默认输出中的容器 ID:

$ docker stats $(docker ps --format={{.Names}})

用容器的名称替代 ID 后输出的结果是不是友好一些?

格式化输出的结果

我们在前面搞了点小手段把输出中的容器 ID 替换成了名称。其实 docker stats 命令支持我们通过 --format 选项自定义输出的内容和格式:

$ docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

上面的命令中我们只输出了 Name, CPUPerc 和 Memusage 三列。下面是自定义的格式中可以使用的所有占位符:
.Container    根据用户指定的名称显示容器的名称或 ID。
.Name           容器名称。
.ID                 容器 ID。
.CPUPerc       CPU 使用率。
.MemUsage  内存使用量。
.NetIO           网络 I/O。       
.BlockIO        磁盘 I/O。
.MemPerc     内存使用率。
.PIDs             PID 号。
有了这些信息我们就可以完全按照自己的需求或者是偏好来控制 docker stats 命令输出的内容了。

除了以 table 格式输出结果,还可以通过 format 选项输出 json 格式的结果:

$ docker stats --no-stream --format \
    "{\"container\":\"{{ .Container }}\",\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"cpu\":\"{{ .CPUPerc }}\"}"

总结

通过 docker stats 命令我们可以看到容器使用系统资源的情况。这为我们进一步的约束容器可用资源或者是调查与资源相关的问题提供了依据。除了 docker 自带的命令,像 glances 等工具也已经支持查看容器使用的资源情况了,有兴趣的朋友可以去


本文转自sparkdev博客园博客,原文链接:http://www.cnblogs.com/sparkdev/p/7821376.html,如需转载请自行联系原作者

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查看 docker 容器使用的资源 的相关文章

随机推荐

  • 复现经典目标跟踪算法ByteTrack之路:调通第一个demo

    复现经典目标跟踪算法ByteTrack之路 调通第一个demo ByteTrack源论文地址 https arxiv org pdf 2110 06864 pdf ByteTrack开源代码地址 https github com ifzha
  • Windows环境下在Java中内嵌MySQL数据库初探

    一 以下测试程序包含两个类 com suntown Main 和 com suntown EmbedMySqlServer 依赖的jar包有 mysql connector mxj gpl 6 0 11 db files jar 对应的my
  • 华为OD机试真题- 对称字符串【2023Q2】【JAVA、Python、C++】

    题目描述 对称就是最大的美学 现有一道关于对称字符串的美学 已知 第 1 个字符串 R 第 2 个字符串 BR 第 3 个字符串 RBBR 第 4 个字符串 BRRBRBBR 第 5 个字符串 RBBRBRRBBRRBRBBR 相信你已经发
  • 图像分类与检索

    写在前面 感受野的本质是 某一层特征图中的某一cell对应原始输入的响应大小区域 自底向上推导出原图中的响应 感受野可以告诉我们在某一层做的事受原始输入的影响有多大 比如语义分割会用到 对pixel的分类 要看pixel周围的pixel 文
  • 拷贝构造函数中的浅拷贝与深拷贝

    拷贝构造函数 由 编译器 调用来完成一些基于同一类的其他对象的构建及初始化 1 构造函数调用规则 构造函数调用规则如下 默认情况下 c 编译器至少给一个类添加3个函数 默认构造参数 无参 函数体为空 默认析构参数 无参 函数体为空 默认拷贝
  • springboot获取静态资源文件夹下的文件

    第一种 package org springframework util URL url ClassUtils getDefaultClassLoader getResource classpath static image srcImgN
  • 基于CNN卷积神经网络的商品识别(毕设)

    一 研究背景及意义 当下 国内超市结算的方式大多都是人工扫码 在下班人流高峰期 显然这不是更高效的方式 无疑是增加了超市的人工成本及顾客的等待时间 二 目标检测的算法的选取 在单阶段目标检测算法中 目前主流的算法是YOLO算法与SSD算法
  • ReRes 过无限debugger

    条件 chrome 插件ReRes 已安装 ReRes安装 问题 以智慧树为例 打开开发者工具 发现进入断点模式 如图 我们并没有设置任何断点 也没有执行任何额外的脚本 它就直接进入了断点模式 这时候我们可以点击 Resume script
  • 卷积神经网络中图像池化操作全解析

    一 池化的过程 卷积层是对图像的一个邻域进行卷积得到图像的邻域特征 亚采样层 池化层 就是使用pooling技术将小邻域内的特征点整合得到新的特征 在完成卷积特征提取之后 对于每一个隐藏单元 它都提取到 r a 1 c b 1 个特征 把它
  • nginx + rtmp 集群搭建时遇到的一个坑

    使用nginx rtmp module的push功能搭建集群 即服务器A origin 接受推流 在application里配置push 推送到另外的几台服务器 edge 届时观看直播通过另外的几台服务器观看 结果在本地测试没有问题 放到客
  • 手机相机专业模式参数详解

    手机相机专业模式参数详解 1 M measure 大写的M 是指测光图标 下边有三个子图标 第一个矩阵测光 适合广阔的风景照 第二个中央测光 适合有主体画面中间的场景 第三个点测光 适合舞台摄影 2 ISO ISO是感光度 点击之后去拉那个
  • 全球及中国铁路行业十四五规划目标与投资建设状况分析报告2021版

    全球及中国铁路行业十四五规划目标与投资建设状况分析报告2021版 HS HS HS HS HS HS HS HS HS HS HS HS 修订日期 2021年11月 搜索鸿晟信合研究院查看官网更多内容 第一章 铁路相关定义及概述 1 1 轨
  • No such module 'Alamofire'解决办法

    试了很多办法都没有什么用 对于我的情况 所以我将项目中的文件移植到一个新建的项目中 并重新使用cocoapods安装第三方框架 就不会报错了 或者关闭重启Xcode 目前不知道是什么原因 知道的评论区留言 谢谢
  • 牙齿的X射线图像的语义分割(附代码)

    第一步结果 第二步结果 本研究的目的是通过使用U Net模型和二值图像分析的深度学习方法 在一次拍摄的全景x射线图像中自动语义分割和测量牙齿的总长度 以便为牙齿疾病 疾病和状况的管理提供诊断信息 模型结构 代码 coding utf 8 M
  • Python中datetime时间戳精确到单位的用法

    对于爬虫爬取到的文章存储到数据库时 有时需要到文档发布的时间进行处理 此时要用到datetime将时间精确到某一个单位 conding utf8 from datetime import datetime timedelta import
  • eclipse 使用maven 构建springboot+注入servlet

    本文转载至 http www cnblogs com java zhao p 5775103 html 问 有了springMVC 为什么还要用servlet 有了servlet3的注解 为什么还要使用ServletRegistration
  • 【计算机视觉

    文章目录 一 MIS Check Dam Minor Irrigation Structures Check Dam 二 MLGESTURE DATASET 三 Marine Microalgae Detection in Microsco
  • CDN上的缓存刷新、缓存预热是怎样的使用场景?

    缓存刷新 源站内容更新后 希望用户可以获取到最新资源 CDN租户可以通过提交刷新请求将CDN节点上指定的缓存内容强制过期 当用户再次访问时 CDN节点将回源获取已更新内容返回给用户并在节点缓存最新资源 简单来说就是删除cdn各节点上的缓存
  • 10. 拦截器的使用

    文章目录 拦截器概述 自定义拦截器 1 新建一个Moudule springmvc 05 Interceptor 添加web支持 2 导入pom依赖 并检查Artifacts的lib目录 3 配置web xml 和 applicationC
  • 查看 docker 容器使用的资源

    在容器的使用过程中 如果能及时的掌握容器使用的系统资源 无论对开发还是运维工作都是非常有益的 幸运的是 docker 自己就提供了这样的命令 docker stats 默认输出 docker stats 命令用来显示容器使用的系统资源 不带