Loading

Docker入门与应用系列(八)Docker图形界面管理之Shipyard

Shipyard基于Docker API实现的容器图形管理系统,支持container、images、engine、cluster等功能,可满足我们基本的容器部署需求
可堆栈的Docker管理
基于Docker Swarm,Shipyard可让您管理Docker资源,包括容器,图像,私人注册表等等。
Shipyard与其他管理应用程序的不同之处在于它提高了可组合性,并与Docker Remote API 100%兼容。
Shipyard管理container、images、engine、cluste范围内的私人注册管理机构以及提供身份验证和基于角色的访问控制。
官网:
https://www.shipyard-project.com/docs/deploy/
https://www.shipyard-project.com/docs/deploy/manual/

镜像名称

运行服务

描述

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存储数据

 

自动化部署

curl -sSL https://shipyard-project.com/deploy |bash -s

手动部署

Datastore
Shipyard使用RethinkDB作为数据存储。
首先我们将启动一个RethinkDB容器。

$> docker run \
-ti \
-d \
--restart=always \
--name shipyard-rethinkdb \
rethinkdb
Datastore

Discovery
要启用Swarm leader选举,我们必须使用来自Swarm容器的外部键值存储。
对于这个例子,我们将使用etcd,但是可以使用Swarm支持的任何键/值后端。

$> docker run \
-ti \
-d \
-p 4001:4001 \
-p 7001:7001 \
--restart=always \
--name shipyard-discovery \
microbox/etcd -name discovery
Discovery

Proxy
默认情况下,Docker引擎只侦听套接字。 我们可以重新配置引擎来使用TLS,也可以使用代理容器。
这是一个非常轻量级的容器,它只是将来自TCP的请求转发给Docker侦听的Unix套接字。
注意:如果使用手动TCP / TLS配置,则不需要此项。

$> 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
Proxy

Swarm Manager
这将运行一个Swarm容器配置为管理。

$> docker run \
-ti \
-d \
--restart=always \
--name shipyard-swarm-manager \
swarm:latest \
manage --host tcp://0.0.0.0:3375 etcd://192.168.1.82:4001
Swarm Manager

Swarm Agent
这运行一个Swarm代理,允许节点调度容器。

$> docker run \
-ti \
-d \
--restart=always \
--name shipyard-swarm-agent \
swarm:latest \
join --addr 192.168.1.82:2375 etcd://192.168.1.82:4001
Swarm Agent

Controller
这将运行Shipyard控制器。

$> 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
Controller

安装完毕后,进程查看

root@linux-node3:~# docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                            NAMES
7ff955eb2507        shipyard/shipyard:latest       "/bin/controller s..."   4 minutes ago       Up 4 minutes        0.0.0.0:8080->8080/tcp                           shipyard-controller
5b911657956d        swarm:latest                   "/swarm join --add..."   5 minutes ago       Up 5 minutes        2375/tcp                                         shipyard-swarm-agent
1c7da1f43873        swarm:latest                   "/swarm manage --h..."   5 minutes ago       Up 5 minutes        2375/tcp                                         shipyard-swarm-manager
f812939ee6b2        shipyard/docker-proxy:latest   "/usr/local/bin/run"     8 minutes ago       Up 8 minutes        0.0.0.0:2375->2375/tcp                           shipyard-proxy
629a2015e02d        microbox/etcd                  "/bin/etcd -name d..."   9 minutes ago       Up 9 minutes        0.0.0.0:4001->4001/tcp, 0.0.0.0:7001->7001/tcp   shipyard-discovery
7a877074bc14        rethinkdb                      "rethinkdb --bind all"   10 minutes ago      Up 10 minutes       8080/tcp, 28015/tcp, 29015/tcp                   shipyard-rethinkdb

浏览器访问
IP+端口
192.168.1.82:8080
用户名:admin
密码:shipyard

 

posted @ 2017-12-17 01:57  宋某人  阅读(481)  评论(0)    收藏  举报