docker stats监控容器资源消耗

2023-11-10

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

默认输出

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

?
1
$ 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 选项只输出当前的状态:

?
1
$ docker stats --no-stream

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

只输出指定的容器

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

?
1
$ docker stats --no-stream registry 1493

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

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

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

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

格式化输出的结果

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

?
1
$ 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 格式的结果:

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

总结

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

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

docker stats监控容器资源消耗 的相关文章

  • ubuntu卸载软件

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 1 打开终端 你将使用 apt get 命令 这是用于管理已安装程序的通用命令 在卸载程序时 你可能需要输入管理员密码 当你输入密码时 密码将不会被显示 完成输入后按回车即
  • PrintWriter返回乱码的分析及解决

    用response得到输出流 即response getOuptStream 返回值为ServletOutputStream 对象 即JSP的out对象 要么用response得到输出对象PrintWriter即response getWr
  • 十三、Linux中虚拟化的使用

    十三 Linux中虚拟化的使用 13 1 Linux中kvm虚拟化软件的安装及硬件设定 安装条件 对于Intel的cpu 要有vmx 对于amd的cpu 要有svm 执行cat proc cpuinfo grep vmx查看 1 搭建好软件
  • 保姆级mysql8.0.32安装配置教程(windows 64位)以及mysql的root密码忘记怎么办

    1 官网下载MySQL 下载Mysqlhttps dev mysql com downloads mysql 可能需要登录Oracle账户 下载完成后解压到某一个文件夹 记住这个路径 一会要用到 我的配置环境习惯性放在E盘 2 配置初始化文
  • leetcode1588、所有奇数长度子数组的和(c++)

    leetcode1588 所有奇数长度子数组的和 c 难度 简单 给你一个正整数数组 arr 请你计算所有可能的奇数长度子数组的和 子数组 定义为原数组中的一个连续子序列 请你返回 arr 中 所有奇数长度子数组的和 示例1 输入 arr
  • 基于MVC的博客系统【JavaWeb项目】

    项目说明书 一 摘要 博客系统是一个使用JavaWeb技术开发的博文及不同用户交流的平台 博客系统是一个简单的博文交流的web平台 可以满足用户简单的博文管理需求 操作简单 主要包含以下几个方面 登录注册 查看所有用户的博客文章 对博文进行
  • 10开机蓝屏无限重启_Win10蓝屏代码PAGE_FAULT_IN_NONPAGED_AREA的解决方法

    电脑继1803更新后第4次蓝屏了 原本蓝屏后自动重启后就会恢复正常 然而天真的我太低估了微软的实力 蓝屏 重启 蓝屏 重启无限循环 当然 重启几次就进入了高级模式 高级模式 进去疑难解答 高级选项 试了试启动修复 没用 继续 搜索蓝屏代码P
  • flink程序运行问题

    异常 kafka分区连接超时 phoinex启动阻塞 发现hbase起不来 hdfs报错Please check the logs or run fsck in order to identify the missing blocks 解决
  • ntp服务器是什么,有什么用?

    https www idcbest com servernews 11002256 html ntp服务器隶属于小众时间频率行业 对于初次接触者和未涉猎此行业的人群来说 就会有很大的疑问 ntp服务器能做什么 为什么会需要ntp服务器 本文
  • 用Python爬取微信好友签名并生成词云(解决词云白板问题)

    今天上班看到一篇关于用Python爬取微信好友签名并生成词云的文章 觉得很有趣 就学着尝试爬取自己的微信好友签名 菜鸟写代码 总是会出现很多问题 摸索了一天 终于成功了 记录下自己的经过 希望能给像自己一样的小白一点点参考 本博客代码参考h

随机推荐

  • neon 指令 c语言,NEON初步使用

    前言 指令集并行是CPU的优化加速的一个方向 在ARM芯片主要是利用NEON指令集实现指令集并行 NEON简介 NEON就是高级SIMD 单指令多数据 适用于图像 音频等数据处理 ARMv6就叫SIMD ARMv7开始叫NEON aarch
  • 前端JS笔记

    JS笔记 持续更新中
  • c语言string函数作用,浅谈C语言之字符串处理函数

    下面介绍8种基本的常用的字符串处理函数 在数值数组中也常常用到 部分函数 所有的C语言编译系统中一般都提供这些函数 1 puts函数 输出字符串的函数 一般的形式为puts 字符串组 作用 将一个字符串输出到终端 如 char一个strin
  • CAD卸载/完美解决安装失败/如何彻底卸载清除干净cad各种残留注册表和文件的方法...

    在卸载cad重装CAD时发现安装失败 提示是已安装或安装失败 这是因为上一次卸载后没有清理干净 系统会误认为已经安装过了 有的同学是新装的系统也会出现安装失败的情况 这是因为C 或者 NET的原因 无论任何版本的cad在手动删除卸载之后都会
  • nginx查看php错误日志,nginx php-fpm输出php错误日志的方法

    nginx php fpm输出php错误日志的方法 发布时间 2020 08 15 11 03 12 来源 亿速云 阅读 137 作者 小新 nginx php fpm输出php错误日志的方法 这个问题可能是我们日常学习或工作经常见到的 希
  • B+树结构与索引<一> _ 结构与索引

    目录 一 B 树结构 1 二分查找法 2 二叉查找树 3 平衡二叉树 4 平衡多路查找树 B Tree 5 B 树 二 操作B 树 1 插入操作 2 删除操作 三 B 树索引类型 1 聚集索引 clustered index 2 辅助索引
  • == 和 equals 的区别是什么

    解读 对于基本类型和引用类型 的作用效果是不同的 如下所示 基本类型 比较的是值是否相同 引用类型 比较的是引用是否相同 equals 解读 equals 本质上就是 只不过 String 和 Integer 等重写了 equals 方法
  • 给你的类重写Equals--检测Class是否相等

    在C 的容器中 常用的三个容器数组 ArrayList Hashtable 数组比较简单 实现某种单一数据的存储 但是并不能自由插入 移除和容纳不同的对象 所以ArrayList是数组的替代品 并且由于ArrayList可以自由的添加 删除
  • 调用接口时 net::ERR_CERT_AUTHORITY_INVALID

    调用接口控制台报错net ERR CERT AUTHORITY INVALID network栏也是红色 这种一般的情况是证书不被浏览器认可 检查下证书 我的情况是我在本地模拟的https 生成的模拟证书 所以是不被浏览器认可的 解决方案
  • centos-6.8下载与安装

    一 centos的下载 有了需要自己才会去动手 算是配置开发环境的一些记录吧 首先进入官网 https www centos org download 官网页面 全英文的界面 英语不是很好 但容易找到 list of current mir
  • PROFINET工业以太网教程---GSDML文件详解

    前面的文章 PROFINET工业以太网教程 10 GSD文件 我们介绍过GSD文件 它的全称是 General Station Description 中文翻译为 通用站描述文件 GSD文件的主要作用是对PROFINET或PROFIBUS子
  • java课设带app_IPAssignApp.java

    package tsinghuaip import javax swing UIManager import java awt public class IPAssignApp boolean packFrame false Constru
  • Java 描述将数字金额转换为中文大写

    Java 描述金额转换 数字转换成中文大写 解题思路 把每一位转换成对应的大写 然后在不足地方补零 最后加上相应单位 代码如下 import java util Scanner public class Main public static
  • 入门汇编(简单程序设计)

    将TABLE单元的10个字节数据传送到TABLE 5开始的单元 MOV CX 10 LEA SI TABLE LEA DI TABLE ADD DI 14 ADD SI 9 STD REP MOVSB 计算 X Y X 结果存Z单元 商是A
  • 多态的定义及其实现

    1 什么是多态性 多态性可以简单地概括为 一个接口 多种方法 程序在运行时才决定调用的函数 它是面向对象编程领域的核心概念 只有重写虚函数才体现C 的多态性 虚函数 虚函数对于多态具有决定性的作用 有虚函数才能构成多态 只需要在虚函数的声明
  • 您选择的文件不是有效的iso映像文件,请重新选择

    安装windows系统的时候无非就是参考类似于下面的这些博文 通用PE u盘装Ghost Win10系统教程http www tongyongpe com win10ghost html 用U盘装机大师安装GHOST WIN10系统http
  • React入门教程之井字棋(三)——游戏完善

    我们现在已经编写好了井字棋游戏中 最基础的可以落子的棋盘 为了开发一个完整的游戏 我们还需要交替在棋盘上放置 X 和 O 并且判断出胜者 状态提升 当前 每个 Square 组件都维护了游戏的状态 我们可以把所有 9 个 Square 的值
  • git删除分支,本地分支、远程分支

    前言 git删除分支的命令 目标 我们这里来删除git的 dev 分支 步骤 一 查看所有的分支 git branch a 查看当前所有的分支 git branch 查看当前所在分支 二 删除本地的分支 git branch D dev 先
  • Linux入门(一)——Linux开源版本的对比

    Linux开源版本的对比 CentOS Ubuntu Debain Debain 优点 稳定 占用空间小 不足 帮助文档相对CentOS少 技术资料也比较少 CentOS CentOS是从RedHat源代码编译的社区重新发布版 CentOS
  • docker stats监控容器资源消耗

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