说在前面
您已经启动并运行了Docker一段时间,而且已经在网络上部署了多个容器。在这里,我们假设那些容器都应该是健康、安全的,但是大家都知道,这仅仅是假设而已,事实上在IT领域,我们永远不敢保证一切都会运行的非常顺利,没有任何Bug的出现。那么,我们能用什么简单、有效的方法来监听自己的Docker容器呢?其实,Docker开发人员已经为我们广大用户考虑到了这一点,在docker 中包含了一个非常易于使用的监听工具,它可以让用户深入了解容器的运行方式。
在这里,我将向您演示如何使用这个监听工具。
统计数据(Stats)
我们讨论的这个监听工具实际上只是一个与docker命令一起使用的选项,这个命令可以显示与容器有关的实时信息流。登录到Docker服务器并发出如下命令:
docker stats
您将看到当前正在运行的容器统计数据(如图A所示)。
(图A)当前运行的容器统计数据
默认命令将为您显示Container ID、CPU、MEM、NET和BLOCK的使用情况,以及容器的Process ID。如果您不需要显示所有的信息,您可以使用“format”命令来查看您想要看到的信息。举个例子,您只想查看Container ID、CPU、MEM、NET的使用情况。使用--format选项,之后添加想要查看的信息,格式如下所示:
docker stats --format "table {{.Container}}t{{.CPUPerc}}t{{.MemUsage}}t{{.NetIO}}"
得到的信息如图B所示。
(图B)docker stats的输出结果
各种格式占位符的含义:
- .Container - 显示容器ID;
- .Name - 显示容器名称;
- .ID - 显示容器ID;
- .CPUPerc - 显示CPU百分比;
- .MemUsage - 显示内存使用情况;
- .NetIO - 显示网络I / O;
- .BlockIO - 显示块I / O;
- .MemPerc - 显示内存百分比;
- .PID - 显示进程ID的数量;
您还可以使用简单的方式得到您想要的结果,如下所示:
docker stats --format "{{.Container}}: {{.CPUPerc}}"
上面的命令只显示容器ID(Container)和CPU百分比(CPUPerc)(如图C所示)。
(图C)这是一种非常简单的格式
这就是使用docker stats命令的方法。如您所见,这是一个非常简单的监听工具,它可以让您快速了解容器的工作方式。如果您发现Docker服务器行为异常,请发出docker stats命令,查看是否有一个正在运行的容器就是那个导致异常的罪魁祸首。如果您发现容器占用了太多的系统资源,那么您可以重启该容器并重新检查统计数据。这真的是一个非常简单的容器管理工具,快来尝试一下吧!