我们上次对docker swarm的使用,docker swarm的重要概念节点(管理节点,工作节点),管理节点会把任务下发到工作节点上面去,服务一组任务的节点的结合。任务就是一个实例,一个实例里面包含一个容器,之前都是通过命令行来操作docker的。有没有图形化的界面来管理我们的docker呢?实际上是有的。
https://www.portainer.io/
Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。可以轻松的管理docker主机和集群。
docker run -d -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
--name prtainer \
portainer/portainer
192.168.66.100:9000 第一次访问需要创建管理员的用户
https://github.com/google/cadvisor
为了解决docker stats的问题(存储、展示),谷歌开源的cadvisor诞生了,cadvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和http接口,方便其他组件如Prometheus进行数据抓取。 Cadvisor使用Go语言开发,利用Linux的cgroups获取容器的资源使用信息,在K8S中集成在Kubelet里作为默认启动项,官方标配。
docker run \
--volume=/var/run:/var/run:rw \
--volume=/:/rootfs:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
注意:在Ret Hat,CentOS, Fedora 等发行版上需要传递如下参数,因为 SELinux 加强了安全策略:--privileged=true
http://192.168.66.100:8080/containers/
其实界面话不是重点,重点是rest api服务,可以获取对应的数据信息http://192.168.66.100:8080/api/v1.3/containers
数据导出出去供第三方来使用监控和分析,其实接口才是cAdvisor最突出的功能,但对于单机来说cAdvisor也是没有问题的,
PS:这次给大家介绍了图形化的管理工具portainer和cAdvisor,在后面学习k8s的时候都会经常的使用这个cAdvisor。