docker可视化管理工具之shipyard
本文所使用的环境如下
操作系统版本:CentOS Linux release 7.7.1908 (Core)
Docker版本:Docker version 19.03.4
一、概述
Docker图形化(视图化)页面管理工具基本常用的有三种: DOCKER UI、Shipyard、Portainer。相对而言,Shipyard最强大,其次是Portainer,最后是Docker UI。Shipyard也是基于 Docker API 实现的容器可视化(web版)管理系统,支持container、images、engine、cluster等功能,它同样也可以简化对横跨多个主机的Docker容器集群进行管理。通过web用户界面,你可以大致浏览相关信息,比如你的容器在使用多少处理器和内存资源、在运行哪些容器,还可以检查所有集群上的事件日志等。可满足我们基本的容器部署需求。
关于docker UI的安装可以点击这里:docker可视化管理工具之dockerUi
二、Shipyard功能特性及概念
2.1、Shipyard功能
其功能特性主要包括:
①、支持节点动态集群,可扩展节点的规模(swarm、etcd方案)
②、支持镜像管理、容器管理、节点管理等功能
③、可视化的容器管理和监控管理
④、在线容console终端
2.2、Shipyard的几个概念
①、engine:一个shipyard管理的docker集群可以包含一个或多个engine(引擎),一个engine就是监听tcp端口的docker daemon。另外,shipyard可以对每个engine做资源限制,包括CPU和内存;因为TCP监听相比Unix socket方式会有一定的安全隐患,所以shipyard还支持通过SSL证书与docker后台进程安全通信。
什么是engine?
一般当人们说 “Docker”时, 他们一般指的是Docker Engine, 一个client-server 结构的应用, 包含 Docker daemon(docker守护进程)、一个用来和 daemon 交互的REST API、 一个命令行应用CLI。Docker Engine 在命令行中接收并解析、执行docker 命令, 例如: docker run、docker ps等。
三、Shipyard所依赖的几个镜像
①、rethinkdb:在shipyard中充当数据库的角色(实际上它也就是一个数据库)。它是一个NoSQL数据库,用于存储shipyard系统的数据,比如账号、节点、容器等信息。
②、microbox/etcd:服务注册、发现系统。K/V存储系统,用于Swarm节点实现服务注册、发现。也支持consul、zookeeper。
③、shipyard/docker-proxy:docker API代理。连接本地/var/run/docker.sock代理,用于让Swarm Agent连接API管理。
④、swarm:swarm集群。官方管理Docker集群工具,使得多个engine为一个整体管理,对外提供Swarm manager API,用户就像操作单台Engine一样。
⑤、shipyard/shipyard:shipyard前端。容器Web管理系统,内部连接Swarm Manager管理容器和RethinkDB存储数据。
四、Shipyard部署
部署分为自动部署和手动部署,这里我们使用手动部署。
4.1、先提前下载好相关依赖镜像(这些镜像如果不提前下载,则在安装部署时会自动下载,不过要等待一段时间,所以最好提前下载,部署时就很快了)
docker pull rethinkdb docker pull microbox/etcd docker pull shipyard/docker-proxy docker pull swarm docker pull shipyard/shipyard
①、第一步安装Datastore帐号密码管理容器
docker run -ti -d --restart=always --name shipyard-rethinkdb rethinkdb
②、第二步安装集群发现Discovery服务
docker run -ti -d -p 4001:4001 -p 7001:7001 --restart=always --name shipyard-discovery microbox/etcd -name discovery #映射的端口号为4001 其它组件连接4001进行服务注册
③、第三步安装docker-proxy协议代理
docker run -ti -d -p 2375:2375 --hostname=$HOSTNAME --restart=always --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy:latest
④、第四步安装Swarm管理节点
#官方文档部署如下,下面的<IP-OF-HOST>替换成自己的实际IP地址。 docker run -ti -d --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 etcd://<IP-OF-HOST>:4001 #本文的实际环境示例部署如下: docker run -ti -d --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 etcd://119.3.220.26:4001 #意思表示:将swarm组件注册到etcd这个注册中心中,而我们这里的etcd注册中心在上一步映射的端口是4001,然后写上自己的实际ip地址即可。
⑤、 第五步安装Swarm从节点
docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 119.3.220.26:2375 etcd://119.3.220.26:4001 #注意:上面有2个地方的ip地址为119.3.220.26,均需要换成你自己实际的ip地址。119.3.220.26是本文使用的ip地址 #这一步骤表示:swarm节点所部署了一个程序,将它加入到swarm集群中,去做本机的容器的管理
⑥、第六步(最后一步)安装Shipyard管理界面,也就是web版管理docker的UI界面
docker run -ti -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard:latest server -d tcp://swarm:3375
可以使用 docker ps 命令来查看我们的容器是否都安装部署成功,是否都已经在后台运行中了,示例截图如下:
从上图中我们看到,一切就绪 没有问题。
五、浏览器访问Shipyard
访问 http://[ip-of-host]:8080 即可访问shipyard web-ui界面,本文这里的访问url是:http://119.3.220.26:8080
默认帐号:admin
默认密码:shipyard
使用账号和密码登录之后的shipyard显示界面如下:
至此,shipyard安装完毕,大家慢慢体验熟悉它吧。
六、尾声
本文安装的shipyard的ui界面是英文版(原版)的,不过是有中文版的ui界面的。如果想要安装中文版的可以参考如下连接:
https://blog.csdn.net/xcbeyond/article/details/82796667
https://blog.51cto.com/13941177/2368204
官方部署文档:http://shipyard-project.com/deploy/
官方手动部署文档:http://shipyard-project.com/manual-deployment/