目录
当Docker部署规模逐步变大后,可视化容器环境的性能和健康状态将会变得越来越重要
Docker自带的几个监控子命令:ps,top和stats,然后是几个功能更强的开源工具sysdig、Weave Scope、cAdvisor和Prometheus。
Docker自带的监控子命令
ps
就是查看正在运行的容器
[root@localhost ~]# docker ps
还可以查看所有容器
[root@localhost ~]# docker ps -a
还可以查看最近几个容器
[root@localhost ~]# docker ps -n 2
Docker提供了一个新命令docker container ls,它的作用和用法与docker container ps完全一样
top
当我们想知道某个容器中运行了哪些进程,可以执行docker top [container]命令
[root@localhost ~]# docker top test4
上面显示了sysdig这个容器中的进程,命令后面还可以跟linux系统的ps命令的选项,例如
[root@localhost ~]# docker top test4 -au
stats
stats用于显示每个容器各种资源的使用情况
[root@localhost ~]# docker stats test4
默认会显示一个实时变化的列表,展示每个容器的CPU使用率,内存使用量个可用量。需要注意的是:容器启动时如果没有特别指定内存limit,stats命令会显示host的内存总量,但这并不意味着每个container都能使用到这么多的内存
第三方开源的工具
sysdig
sysdig是一个轻量级的系统监控工具,同时它还原生支持容器,通过sysdig可以近距离观察linux操作系统和容器的行为
先下载sysdig镜像
[root@localhost ~]# docker pull sysdig/sysdig
在启动容器 --rm是在容器结束之后自动删除容器
[root@localhost ~]# docker run -it --rm --name=sysdig --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro sysdig/sysdig
在容器里执行csysdig命令,就可以监控了
[root@a5e499c4c1ed /]# csysdig
Weave Scope
Weave Scope的最大特点是会自动生成一张Docker容器地图,让我们能够直观地理解、监控和控制容器
首先是准别scpoe的包
[root@localhost ~]# ls
anaconda-ks.cfg scope
在给这个包一个x权限
[root@localhost ~]# chmod +x scope
移动到/usr/local/bin/下
[root@localhost ~]# mv scope /usr/local/bin/scope
然后在执行scope launch命令让它自动下载镜像
[root@localhost ~]# scope launch
在给iptables添加端口
[root@localhost ~]# firewall-cmd --add-port=4040/tcp --permanent
在重新加载iptables
[root@localhost ~]# firewall-cmd --reload
然后直接访问 http://IP:4040