docker的基本构建出来以后要考虑上层的管理的可视化,不能去登录一台一台的服务器去管理这些docker容器。 目前可视化做的比较好的有shipyard和dockerUI。
这里将介绍这两个的创建方法和相应的特点。
首先是shipyard
在网上找到有关shipyard的资料除了官网和git。其他大部分资料都是老版本python实现相关的,而现在已经采用go + Angular.js + semantic UI实现。
shipyard是在Docker Swarm实现对容器、镜像、docker集群、仓库、节点进行管理的web系统。采用golang调用Docker Remote API和angular.js+semantic UI实现web开发的。
github:https://github.com/shipyard/shipyard
1、shipyard部署
shipyard的部署非常简单,官方提供了在线的脚本通过命令进行安装,使用curl -s https://shipyard-project.com/deploy | bash -s命令进行安装即可。
汉化中文版 curl -sSL https://shipyard-project.com/deploy | bash -s
deploy实际上是一个shell脚本,实现docker run启动shipyard依赖的容器。如果觉得每次通过curl启动不方便也可以将这个脚本下载到本地磁盘进行操作。
启动完成以后,在浏览器输入http://host:8080即可访问,默认用户名为admin密码为shipyard。
注意:由于deploy在执行时需要访问/var/run/docker.sock,所以需要root权限,或者为该文件添加权限。
2、shipyard的界面
浏览器输入http://host:8080即可访问,默认用户名为admin密码为shipyard
注意 : 本人用360浏览器没有成功(有点不专业)换用chrome就OK了
界面比较友好,不做过多介绍,主页面是这样的
3、shipyard的生态
shipyard是由shipyard控制器以及周围生态系统构成,以下按照deploy启动顺序进行介绍。
RethinkDB
deploy首先启动的就是RethinkDB容器,shipyard采用RethinkDB作为数据库来保存用户等信息
Discovery
为了使用Swarm,我们需要一个外部的密钥值存储群容器,shipyard默认是采用了etcd。
shipyard_certs
证书管理容器,实现证书验证功能
Proxy
默认情况下,Docker引擎只监听Socket,我们可以重新配置引擎使用TLS或者使用一个代理容器,转发请求从TCP到Docker监听的UNIX Socket。
Swarm Manager
Swarm管理器
Swarm Agent
Swarm代理,运行在每个节点上。
Controller
shipyard控制器,Remote API的实现和web的实现。
4、shipyard的其他选项
deploy的帮助: curl -sSL https://shipyard-project.com/deploy | bash -s -- -h
可以查看这个部署脚本中相应模块的内容,根据自己的需要调用相关的模块和相应的参数。
这里说几个比较常用的:
添加节点(192.168.1.60是我的shipyard所在的服务器)
curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://192.168.1.60:4001 bash -s
执行完后能够看到你添加的在shipyard中:
删除shipyard(当然你要是不嫌麻烦也可以自己用命令删除)
curl -sSL https://shipyard-project.com/deploy | ACTION=remove
升级shipyard容器
curl -sSL https://shipyard-project.com/deploy | ACTION=upgrade
然后是 dockerUI
我以为这个是正版的太子,功能应该更加强大,搭出来发现跟我想的不太一样,我只能说比较轻量化,可能是有点不够明显吧!
1、dockerUI部署:
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui
启动完成以后,在浏览器输入http://host:8080即可访问,默认用户名为admin密码为shipyard。
2、dockerUI界面:
更多功能等待小伙伴们自己发现了。
总结一下
docker dockerUI
优点:
支持多主机; 支持container批量操作;
支持container及engine资源限制及图形展示; 支持image批量操作;
支持container实例横向扩展; 管理容器就一个,轻量化;
支持批量创建;
支持创建时自动调度;
支持container批量操作;
支持console口连接容器。
缺点:
不支持image的批量操作; 不支持批量创建;
相应的容器太多,客户端也需要启动4个容器。 不支持多主机。
总的来说,各有千秋吧,dockerUI适合一台主机的docker容器的简单管理,更加轻量化的部署和管理。
shipyard适合一定规模的主机,支持的功能较多。
有什么好的建议或者其他希望大家能够提出!
本文转自 憬薇 51CTO博客,原文链接:http://blog.51cto.com/welcomeweb/1711869