Docker经常使用的监控方案docker
Docker自带的监控子命令bash
ps网络
docker container ps用来查看当前运行的容器ssh
新版的Docker提供了一个新命令docker container ls,其做用和用法与docker container ps彻底同样。不过ls含义可能比ps更准确,因此更推荐使用 spa
top操作系统
若是想知道某个容器中运行了哪些进程,能够执行docker container top [container]命令 命令行
上面显示了test1这个容器中的进程。命令后面还能够跟上Linux操做系统ps命令的参数显示特定的信息,好比 -au 线程
stats3d
docker container stats用于显示每一个容器各类资源的使用状况 code
默认会显示一个实时变化的列表,展现每一个容器的CPU使用率,内存使用量和可用量
注意:容器启动时若是没有特别指定内存limit,stats命令会显示host的内存总量,但这并不意味着每一个container都能使用到这么多的内存
除此以外docker container stats命令还会显示容器网络和磁盘的IO数据
默认的输出有个缺点,显示的是容器ID而非名字。咱们能够在stats命令后面指定容器的名称只显示某些容器的数据。好比docker container stats test1 test2
ps,top, stats这几个命令是docker自带的,优势是运行方便,很适合想快速了解容器运行状态的场景。其缺点是输出的数据有限,并且都是实时数据,没法反应历史变化和趋势
监控利器sysdig
安装和运行sysdig的最简单方法是运行Docker容器,命令行为
sudo docker run -it --name sysdig --privileged=true --volume=/var/run/docker.sock:/host/var/run/docker.sock --volume=/dev:/host/dev --volume=/proc:/host/proc:ro --volume=/boot:/host/boot:ro --volume=/lib/modules:/host/lib/modules:ro --volume=/usr:/host/usr:ro sysdig/sysdig
能够看到,sysdig容器是以privileged方式运行,并且会读取操做系统 /dev,/proc等数据,这是为了获取足够的系统信息
启动后,经过docker container exec -it sysdig bash进入容器,执行csysdig命令,将以交互方式启动sysdig
sysdig按不一样的View来监控不一样类型的资源,点击底部Views菜单(或者按F2),显示View选择列表
咱们将光标移到Containers这一项,界面右边当即显示出此view的功能介绍,回车或者双击Containers,进入容器监控界面
sysdig会显示该host全部的容器的实时数据,每两秒刷新一次。各列数据的含义也是自解释的,若是不清楚,能够点一下底部的Legend,若是想按某一列排序,好比按使用的内存量,点一下列头VIRT
若是想查看某个容器的进程,将光标移动到目标容器,而后回车或者双击
还能够继续双击查看进程中的线程
返回上一级,按退格键便可
sysdig的交互功能很强,若是界面显示的条目不少,能够点击底部Search菜单,而后输入关键字进行查找
若是以为界面刷新太快,看不清楚关注的信息,能够点击底部的Pause菜单
sysdig的特色:
(1)监控信息全,包括Linux操做系统和容器
(2)界面交互性强
其缺点是sysdig显示的是实时数据,看不到变化和趋势。并且是命令行操做方式,须要ssh到host上执行,不是太方便