写点什么

docker 可视化管理工具之 shipyard

作者:乌龟哥哥
  • 2022 年 5 月 08 日
  • 本文字数:2511 字

    阅读完需:约 8 分钟

docker可视化管理工具之shipyard

一、概述

Docker 图形化(视图化)页面管理工具基本常用的有三种: DOCKER UI、Shipyard、Portainer。相对而言,Shipyard 最强大,其次是 Portainer,最后是 Docker UI。Shipyard 也是基于 Docker API 实现的容器可视化(web 版)管理系统,支持 container、images、engine、cluster 等功能,它同样也可以简化对横跨多个主机的 Docker 容器集群进行管理。通过 web 用户界面,你可以大致浏览相关信息,比如你的容器在使用多少处理器和内存资源、在运行哪些容器,还可以检查所有集群上的事件日志等。可满足我们基本的容器部署需求。

二、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/

发布于: 刚刚阅读数: 2
用户头像

乌龟哥哥

关注

正在努力寻找offer的大四小菜鸟 2021.03.16 加入

擅长 Hbuilder、VS Code、MyEclipse、AppServ、PS 等软件的安装与卸载 精通 Html、CSS、JavaScript、jQuery、Java 等单词的拼写 熟悉 Windows、Linux、 等系统的开关机 看–时间过得多快,不说了,去搬砖了

评论

发布
暂无评论
docker可视化管理工具之shipyard_5月月更_乌龟哥哥_InfoQ写作社区