一、介绍
- 描述:本人在docker容器中运行Tensorflow实验,为了统计Tensorflow训练过程中容器内部的资源使用情况,查阅不少资料。发现当下网上具体介绍docker容器内部资源统计的文章很少,于是,在此暂且充当指路人留下此文为后来者提供帮助。自己也在不断的学习着、进步者,也是别的方向上的后来者。愿所有探索者披荆砍棘、愿所有后来者天天向上。
- 内容:
- 容器监控的维度与监控命令
- 容器监控工具
- 容器监控原理(Linux的namspace、cgroup介绍)
- 容器内部使用脚本统计容器的资源使用情况
二、容器监控维度与命令
- docker容器监控维度
- 主机维度(从整体上了解主机上的容器运行情况)
- 主机的CPU情况和使用量
- 主机的内存情况核使用量
- 主机上的本地镜像情况
- 主机上的容器运行情况
- 镜像维度(镜像使容器的基础,便于从底层来掌握核优化主机上的容器)
- 镜像的基本信息
- 镜像与容器的对应关系
- 镜像构建的历史信息(顶级的依赖信息)
- 容器维度(重点关注,使用linux内核提供的namespace和cgroup来监控容器的各项监控指标)
- 容器的基本信息
- 容器的运行转态
- 容器的用量信息
- 主机维度(从整体上了解主机上的容器运行情况)
- docker容器监控命令
docker ps
docker ps
显示正在运行的docker容器信息包括容器名、容器ID、容器运行状态、镜像名、端口映射等信息,主要是查询容器ID
docker ps -a
显示所有容器的信息
docker images
- 查看镜像信息、包括镜像所属的库、名字、版本、ID、创建时间、实际大小
- 查看镜像信息、包括镜像所属的库、名字、版本、ID、创建时间、实际大小
docker stats
- 专门用于容器状态信息的统计,配套的API为(GET /containers/(id)/stats)【注:不同的docker版本可能API不同,需要根据自己docker版本决定】
- 该命令可实时监控启动中的容器运行情况,包括CPU、内存、块设备和网络I/O(有点类似与linux的top命令)
Ctrl + c
退出
docker inspect
- 用户可以使用该命令查看镜像或容器的详细信息,包括基础配置、主机配置、网络配置、转态信息等。
docker inspect -f {{.NetworkSetting.IPAddress}}<容器ID>
docker inspect <容器ID> |grep Network
(结合Linux管道|grep使用)
docker top
- 该命令可以查看容器内部进程的运行情况,返回容器内部进程的相关信息,包括进程号、父进程号、命令等
- 该命令可以查看容器内部进程的运行情况,返回容器内部进程的相关信息,包括进程号、父进程号、命令等
docker port
- 专门用户查询容器与主机之间的端口映射关系的信息
- 专门用户查询容器与主机之间的端口映射关系的信息
docker logs
- 查看容器日志信息
三、总结
本文主要介绍docker容器监控相关内容的命令使用部分。希望给同是docker初学者的博友们占个坑,少走一些弯路。介绍中提到的docker容器监控的其他部分将在接下来的文章中介绍。本人旨在分享技术,文章写的不好或者不多的地方请多多指正,将不胜感激。本文属于原创,若有引用请注明出处。若有疑问或错误,欢迎各位指出,可以评论或者跟本人联系。