Docker系列(七):Docker图形化管理和监控
Docker管理工具之官方三剑客
Docker Machine是什么鬼
从前 现在
你需要登录主机,按照主机及操作系统特有的安装以及配置步骤安装Docker,使其 能运行Docker容器。
Docker Machine的产生简化了这一过程,让你可以使用一条命令在你的计算机,公有云 平台以及私有数据中心创建及管理Docker主机。
Create Docker Machine主要包括三个Create过程。
• 首先是Provider Create(libmachine/provider.go),此函数主要是在当前运行docker-machine命令主机上创建
以machine name命名的文件夹,并将根证书,服务器证书以及用户证书拷贝到此文件夹。
• 其次是Driver create(例如drivers/virtualbox/virtualbox.go)用来创建主机,
• 最后是运行Host create(libmachine/host.go)通过SSH安装并配置Docker。目前在本地环境中使用的是
boot2docker镜像,云端环境使用的是Ubuntu镜像。
其实真相是这样的:自动创建一个虚机并且安装好设置好Docker Engine
Docker Machine简化了部署的复杂度,无论是在本机的虚拟机上还是在公有云平台,只需要一条命令便可搭 建好Docker主机
• Docker Machine提供了多平台多Docker主机的集中管理
• Docker Machine 使应用由本地迁移到云端变得简单,只需要修改一下环境变量即可和任意Docker主机通信 部署应用。
为什么会有Docker Compose
微服务&规模
Openstack Heat
与容器技术同样受到关注的微服务架构也在潜移默化的改变着应用的部署方式,其提倡将应用分割成一系列细小 的服务,每个服务专注于单一业务功能,服务之间采用轻量级通信机制相互沟通
Docker Swarm (类似k8s)
在很长的一段时间内,Docker只能在单host上运行,其跨host的部署、运行与管理能力颇受外界诟病。跨host能 力的薄弱,直接导致Docker容器与host的紧耦合,这种情况下,Docker容器的灵活性很难令人满意,容器的迁移、 分组等都成为很难实现的功能点。Swarm发布于2014年12月,以管理Docker集群,并将其抽象为一个虚拟整体 暴露给用户,其架构以及命令比较简单。
Swarm作为一个管理Docker集群的工具,可以单独部署于 一个节点。
Swarm的具体工作流程:Docker Client发送请求给Swarm ;Swarm处理请求并发送至相应的Docker Node;Docker Node执行相应的操作并返回响应。
1.运行一个命令去创建一个集群. 2.运行另一个命令去启动Swarm.
3.在运行有Docker Engine的每个主机上,运行一个命令与 上面的集群相连
在某些点, Swarm将可以在主机故障时重调度容器. Swarm可以很好地与第三方容器编配产品和运供应商提供
的编配服务整合,如Mesos
可以看到server和docker node中的tcp是一样的。存在一个调度的关系
swarm则将一组docker enginge作为一个集群进行管理,并提供过了lablel,schedule,filter的能力。 其中调度部分,允许用户定制自己的调度策略。
1.docker run -e “constraint:operationsystem=fedora”
2.docker run -e “constraint:storagedriver=aufs”
Docker Compose是什么鬼 (类似openstack)
Docker Compose将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr)。
一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容 器实例,Docker Compose并没有解决负载均衡的问题,因此需要借助其他工具实现服务发现及负载均衡。
Docker Compose中定义构建的镜像只存在在一台Docker Swarm主机上,无法做到多主机共享
Docker管理工具——Tutum(官方收费)
Docker管理工具——shipyard(开源、活跃)
所有需要纳管的Docker主机,需要让Docker在TCP上监听,以便被纳管 OPTIONS=-H=unix:///var/run/docker.sock -H=tcp://0.0.0.0:2375
安装shipyard
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \ shipyard/deploy start
运行:
浏览器访问物理机的8080端口:http://192.168.131.134:8080/ 默认用户名密码:admin/shipyard,,点击Engines标签页 添加一个Docker主机(Engine):
填写Docker 主机的名字、CPU核心数、内存数量(单位MB)、以及Labels,比如部署Web的标签为web,以后 调度容器的时候,会优先调度到相应的标签。
创建成功后,列表页面显示Docker主机的版本信息:
如果添加失败,则需要排除是否端口不可访问,可以用wget/telnet/curl等方式来排查问题,下面截图是在 另外主机上Telnet Docker 2375端口看是否能连接:
Containers标签页显示了所有的Docker容器,可以按照Engine(主机)排序,目前还没有分页和查询功能。
点击Container标签页的Deploy按钮,可以启动新的容器:
容器的镜像,名称,环境变量,启动参数,是否有Volume存储、是否有端口映射等都可以在界面上定义。启动成功以后,可以看到列表中新容器的状态为RUNNING:
点击容器的链接,可以看到容器的细节信息,如端口、CPU占用、内存占用、环境变量、重启策略等,还可以重 启、停止、销毁容器或者查看容器日志。
如果容器启动失败,或者排查问题,则可以查看容器的日志信息:
Docker管理工具——cAdvisor
cAdvisor的监控图默认1秒刷新一次,显示最近一分钟的实时数据,不显示汇聚的和历史数据, 也没有阀值告警功能,此外它也无法同时监控多个Docker主机,不过由于其简单方便,并且具备 很好的实时性能监控能力,所以适合特殊情况下的性能监控和问题排查。
google的cAdvisor,免费开源,实施简单,每个Docker主机上启动一个容器即可通过Web端口监控,
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro – volume=/var/lib/docker/:/var/lib/docker:ro --publish=8082:8082 --detach=true --name=cadvisor google/cadvisor:latest --port=8082
上述部分参数可能与主机操作系统有关,需要修改,可参照官方文档:https://github.com/google/cadvisor 由于shipyard是在本机8080端口运行,因此上面把cAdvisor改为了8082端口,运行起来后,访问本机8082端口,可
看到监控界面:
显示了当前活动的容器的磁盘占用情况
Docker系列(七):Docker图形化管理和监控的更多相关文章
- 【Docker学习之七】Docker图形化管理和监控
环境 docker-ce-19.03.1-3.el7.x86_64 centos 7 一.Docker管理工具 (官方三剑客)1.Docker Machine(学习的Openstack Heat)Cr ...
- docker 添加Portainer容器图形化管理工具
主要参照了这边博客,但还是有些问题https://www.cnblogs.com/Bug-Hunter/p/12023130.html 比如端口9000得开启,docker端口映射得开启,得开启ip4 ...
- docker图形化管理工具portainer
本章主要介绍docker的web图形化管理工具.这里使用 portainer(类似与dockui不过dockerui只支持单节点) 镜像名称 portainer/portainer 一.启动porta ...
- 6、Docker图形化管理(Portainer)
一.Portainer简介 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控 ...
- 『现学现忘』Docker基础 — 24、Docker图形化管理工具Portainer
目录 1.Portainer介绍 2.Portainer安装启动 3.Portainer初始化配置 4.Portainer汉化 1.Portainer介绍 (1)Portainer 是一款轻量级的图形 ...
- KONG -- 图形化管理(Kong Dashboard)
前面安装的 KONG 的版本是社区版的 1.0.2,官方的 KONG Manager 好像只有企业版才提供.在 github 上找了一个开源的图形化管理应用 -- Kong Dashboard (ht ...
- 数据库--oracle图形化管理工具和新增自定义用户
oracle数据库图形化管理工具: 1 navicat工具很小,操作mySQL和SQLServer非常好用,但对于oracle体验性就有点差,要自己下载编码和替换oci文件.下面是解决的方法教程链接 ...
- 常用MySQL图形化管理工具
MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化管理工具,供大家参考. MySQL是一个非常流行的小型关系型数据 ...
- 有评论就是我最大的动力~MySQL基础篇完结(存储引擎和图形化管理工具)
hi 今天登上来,发现竟然有了3个评论~~加油吧! 这周的计划其实远远没有达到,然后下周还有一大堆事情...那么...周末好好玩吧~ 今天试图完结MySQL的基础篇知识,小白变为大白? 1.MySQL ...
随机推荐
- matlab计时超好用
方法一: profile on <body?> profile viewer 会把所有代码的时间,都显示出来,每行每个函数用时统计,一目了然: 方法二: tic; <body-par ...
- Echart中X轴为时间坐标刻度时,后台返回时间List被强制转化为时间戳问题
if(recordlist!=null&&recordlist.size()>0) { for (Record record : recordlist) { //根据频次决定使用 ...
- Python语法学习记录之tuple该如何使用?
一.介绍 dict 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明: 下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性. 每一个元素是pa ...
- thinkphp 模板驱动
模板引擎驱动完成了第三方模板引擎的支持,通过定义模板引擎驱动,我们可以支持Smarty.TemplateLite.SmartTemplate和EaseTemplate等第三方模板引擎. 默认的模板引擎 ...
- Android中的Service详解
今天我们就来介绍一下Android中的四大组件中的服务Service,说到Service, 它分为本地服务和远程服务:区分这两种服务就是看客户端和服务端是否在同一个进程中,本地服务是在同一进程中的,远 ...
- FastText总结,fastText 源码分析
文本分类单层网络就够了.非线性的问题用多层的. fasttext有一个有监督的模式,但是模型等同于cbow,只是target变成了label而不是word. fastText有两个可说的地方:1 在w ...
- 大数据-KNN算法
KNN是通过测量不同特征值之间的距离进行分类.它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数 ...
- ionic-CSS:ionic 颜色
ylbtech-ionic-CSS:ionic 颜色 1.返回顶部 1. ionic 颜色 ionic 提供了很多颜色的配置,当然你可以根据自己的需要自定义颜色. 实例 <ul class=&q ...
- 剑指offer——18打印从1到最大的n位数
题目: 输入数字n,按顺序打印出从1到最大的n位十进制数.比如输入3,则打印出1.2.3一直到最大的3位数999. 题解: 注意大数溢出问题,故使用字符串更靠谱 class Solution { pu ...
- SQLServer 安装失败可能的原因
问题:安装的时候显示参数指定的目录无效 解决:你的安装盘使用了文件/文件夹压缩功能,去掉压缩属性即可! 建议不要轻易使用储存盘的压缩功能