【Docker学习】docker stats

命令:

docker container stats

描述:

显示容器资源使用的状态(实时)

用法:

docker container stats [OPTIONS] [CONTAINER...]

别名:

docker stats(docker的一些命令可以简写,docker stats就等同于docker container stats)

stats到底可以显示什么,我们先来看看运行效果如何再来说话。

docker stats

可以看到不加任何选项,stats会实时显示出所有运行中的容器状态。ctrl+c可以退出。

这是在我的华为云上运行的两个应用,wordpress和mysql,从列名上可以看出,stats会依次显示CONTAINER ID、NAME、CPU %、MEM USAGE / LIMIT、MEM %、NET I/O、BLOCK I/O和PIDS。

名词解释

列名描述
CONTAINER ID 和NAME容器ID和名称
CPU %和MEM %容器正在使用的宿主机CPU和内存的百分比。
MEM USAGE / LIMIT容器正在使用的总内存,以及它被允许使用的总内存量。
NET I/O容器通过其网络接口接收和发送的数据量。
BLOCK I/O容器在宿主机上的块设备上写入和读取的数据量。
PIDs容器创建的进程或线程数

选项OPTIONS

我们再来看看stats都有哪些选项

选项描述
-a,--all显示所有容器状态(不加这个选项只显示正在运行中的容器)
--format使用自定义模板格式化输出:
‘table’:以表格格式打印输出,包含列标题(默认) 
‘table TEMPLATE’:使用给定的Go模板以表格格式打印输出 
‘json’:以JSON格式打印 ‘TEMPLATE’:使用给定的Go模板打印输出。
--no-stream禁用实时数据流,相当于对容器状态进行一次截图
--no-trunc不进行截断输出

对于选项,我们一个个进行实战操作,从实战中了解stats选项的用法。

-a,--all

显示所有容器状态(不加这个选项只显示正在运行中的容器)。

下面是我阿里云上所有的容器。其中redis是运行状态,另两个ubuntu是退出状态。

执行命令

docker stats --all

可以看到,运行中的redis实时显示CPU,内存等占比,而ubuntu占比都是0。

--format

使用自定义模板格式化输出:
‘table’:以表格格式打印输出,包含列标题(默认) 
‘table TEMPLATE’:使用给定的Go模板以表格格式打印输出 
‘json’:以JSON格式打印 ‘TEMPLATE’:使用给定的Go模板打印输出。

下面只查看单独运行的容器my-redis,使用json的格式输出

docker stats --format json my-redis

可以看出,终端实时显示容器运行状态,但是以json格式输出的。结果如下:

另外,我们还可以自定义控制输出。下表是格式占位符

占位符描述
.Container容器名称或ID
.Name容器名称
.ID容器ID
.CPUPercCPU百分比
.MemUsage内存使用情况
.NetIO网络IO
.BlockIO块IO
.MemPerc内存百分比(不适用于windows)
.PIDs进程数(不适用于windows)

因为docker的底层是Go语言,因此它的格式也支持Go模板的格式。

比如我们想只查看容器、CPU和内存百分比,我们可以这样设置:

docker stats --format "table {{.Name}}/t{{.CPUPerc}/t{{.MemPerc}}}"

结果如下图所示:

备注:上述table如果不输入,将不会显示标题栏,排版也不成样子了。会是如下样子:

--no-stream

禁用实时数据流,相当于对容器状态进行一次截图,只显示当前时刻容器运行时的状态。

还是先上命令

docker stats --no-stream

结果如下。状态信息不再实时显示,直接回到终端输入。

--no-trunc

不进行截断输出。

一些信息,为了美观,默认会进行截断,比如CONTAINER ID列,使用这个命令可以将信息全部输出,不截断。

docker stats --no-trunc

可以看到,容器ID列,输出了全部容器ID。

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值