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  命令来查看我们的容器是否都安装部署成功,是否都已经在后台运行中了,示例截图如下:

d1.png

从上图中我们看到,一切就绪  没有问题。

五、浏览器访问Shipyard

访问 http://[ip-of-host]:8080  即可访问shipyard web-ui界面,本文这里的访问url是:http://119.3.220.26:8080


默认帐号:admin

默认密码:shipyard


使用账号和密码登录之后的shipyard显示界面如下:

d2.png

至此,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/



你无法做一个人人喜欢的橘子  别人爱吃香蕉苹果  那不是你的错



声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与