使用Docker构建应用 | 第五篇:查看Dokcer容器使用的资源

标签: Docker  

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

默认输出

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

$ docker stats
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
4383b9267a03        centos7             0.00%               7.113MiB / 1.952GiB   0.36%               20.2kB / 0B         2.29MB / 4.1kB      6
429ba5c9f7e5        redis               0.42%               1.98MiB / 1.952GiB    0.10%               628kB / 935kB       5.94MB / 651kB      4

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

只返回当前的状态

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

$ docker stats --no-stream
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
4383b9267a03        centos7             0.00%               7.113MiB / 1.952GiB   0.36%               20.2kB / 0B         2.29MB / 4.1kB      6
429ba5c9f7e5        redis               0.42%               1.98MiB / 1.952GiB    0.10%               628kB / 935kB       5.94MB / 651kB      4
$ 

只输出指定的容器

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

$ docker stats --no-stream redis
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
429ba5c9f7e5        redis               0.42%               1.98MiB / 1.952GiB   0.10%               628kB / 935kB       5.94MB / 651kB      4
$

格式化输出的结果

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

$ docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
NAME                CPU %               MEM USAGE / LIMIT
centos7             0.00%               7.238MiB / 1.952GiB
redis               0.45%               1.98MiB / 1.952GiB

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

「真诚赞赏,手留余香」

请我喝杯咖啡?

使用微信扫描二维码完成支付

相关文章