您的Docker 容器还健康吗?一条简单命令帮您找出答案 [转载]

简介: 在IT领域,我们永远不敢保证一切都会运行的非常顺利,没有任何Bug的出现。那么,我们能用什么简单、有效的方法来监听自己的Docker容器呢?其实,Docker开发人员已经为我们广大用户考虑到了这一点,在docker 中包含了一个非常易于使用的监听工具,它可以让用户深入了解容器的运行方式。

说在前面

您已经启动并运行了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命令,查看是否有一个正在运行的容器就是那个导致异常的罪魁祸首。如果您发现容器占用了太多的系统资源,那么您可以重启该容器并重新检查统计数据。这真的是一个非常简单的容器管理工具,快来尝试一下吧!

目录
相关文章
|
11月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
951 124
|
11月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
894 52
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
11月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
1011 6
|
11月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
941 6
|
11月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
1408 4
|
存储 Ubuntu Docker
Docker从入门到精通:Docker pull命令学习
了解Docker镜像下载方法!使用`docker pull`命令从[Docker Hub](https://hub.docker.com/)获取镜像。基本语法是`docker pull NAME[:TAG]`。例如,拉取Python最新镜像的命令是`docker pull python`或`docker pull python:latest`。可选参数包括`-a`(拉取所有标签)和`--quiet`(只显示进度条)。拉取后,用`docker images`检查镜像是否成功存储。开始你的容器化之旅吧!
|
Ubuntu Linux Docker
Docker 入门全攻略:安装、操作与常用命令指南
Docker 的世界非常广阔,这只是一个开始,请继续探索和学习 Docker 的高级特性和最佳实践。后续也会继续更新相关的理论与实践内容。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~