使用Docker Toolbox快速搭建3节点的shipyard集群

来源:互联网 发布:mac使用qq截图 编辑:程序博客网 时间:2024/06/07 00:32

# 摘要:使用Docker Toolbox快速搭建3节点的shipyard集群。
# 首先创建3台Docker虚拟机;然后按照官网的步骤,运行Shipyard相关容器;
# 再将另外2台工作节点加入到Shipyard管理端,实现集中管理整个集群。
#

#实验环境:Docker Toolbox v17.05.0+Windows 7

#
#创建3台 Docker 虚拟机

Manager1="manager1"  
NodeName1="node1"
NodeName2="node2"

docker-machine create \
--driver virtualbox \
--virtualbox-cpu-count "1" \
--virtualbox-disk-size "20000" \
--virtualbox-memory "2048" \
--engine-registry-mirror https://registry.docker-cn.com \
--engine-registry-mirror=http://hub-mirror.c.163.com \
$Manager1

docker-machine create \
--driver virtualbox \
--virtualbox-cpu-count "1" \
--virtualbox-disk-size "20000" \
--virtualbox-memory "2048" \
--engine-registry-mirror https://registry.docker-cn.com \
--engine-registry-mirror=http://hub-mirror.c.163.com \
$NodeName1

docker-machine create \
--driver virtualbox \
--virtualbox-cpu-count "1" \
--virtualbox-disk-size "20000" \
--virtualbox-memory "2048" \
--engine-registry-mirror https://registry.docker-cn.com \
--engine-registry-mirror=http://hub-mirror.c.163.com \
$NodeName2

#切换到主控节点 manager1 上
eval $(docker-machine env $Manager1)

#为保证正常创建,需要先下载相关镜像
docker pull swarm 
docker pull shipyard/shipyard
docker pull rethinkdb
docker pull microbox/etcd
docker pull shipyard/docker-proxy

#1.1、运行数据库容器,使用rethinkdb镜像,(Datastore)
docker run \
    -tid \
    --restart=always \
    --name shipyard-rethinkdb \
    rethinkdb

#1.2、运行用于服务发现的KV存储,使用microbox/etcd镜像,(Discovery)
docker run \
    -tid \
    -p 4001:4001 \
    -p 7001:7001 \
    --restart=always \
    --name shipyard-discovery \
    microbox/etcd -name discovery

#1.3、运行 Shipyard代理,实现TLS加密传输,使用shipyard/docker-proxy镜像,(Proxy)
docker run \
    -tid \
    -p 2375:2375 \
    --hostname=$Manager1 \
    --restart=always \
    --name shipyard-proxy \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e PORT=2375 \
    shipyard/docker-proxy:latest

#1.4、运行 Swarm集群管理端,使用 swarm:latest镜像,(Swarm Manager)
docker run \
    -tid \
    --restart=always \
    --name shipyard-swarm-manager \
    swarm:latest \
    manage --host tcp://0.0.0.0:3375 etcd://$(docker-machine ip $Manager1):4001

#1.5、运行 Swarm代理端,使用swarm:latest镜像,(Swarm Agent)
docker run \
    -tid \
    --restart=always \
    --name shipyard-swarm-agent \
    swarm:latest \
    join --addr $(docker-machine ip $Manager1):2375 etcd://$(docker-machine ip $Manager1):4001

#1.6、运行shipyard 控制器,使用shipyard/shipyard:latest镜像,(Controller)
docker run \
    -tid \
    --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
############### Shipyard管理端 manager1创建完毕!#########################


############### Shipyard工作节点 node1的安装配置###########################
#切换到工作节点 node1 上
eval $(docker-machine env $NodeName1)

#为保证正常创建,需要先在node1上下载相关镜像
docker pull swarm 
docker pull shipyard/docker-proxy

#2.3、运行 Shipyard代理,实现TLS加密传输,使用shipyard/docker-proxy镜像,(Proxy)
docker run \
    -tid \
    -p 2375:2375 \
    --hostname=$NodeName1 \
    --restart=always \
    --name shipyard-proxy \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e PORT=2375 \
    shipyard/docker-proxy:latest

#2.5、运行 Swarm代理端,使用swarm:latest镜像,(Swarm Agent)
docker run \
    -tid \
    --restart=always \
    --name shipyard-swarm-agent \
    swarm:latest \
    join --addr $(docker-machine ip $NodeName1):2375 etcd://$(docker-machine ip $Manager1):4001

############### Shipyard工作节点 node1的安装完毕!##############################


############### Shipyard工作节点 node2的安装配置################################
#切换到工作节点 node2 上
eval $(docker-machine env $NodeName2)

#为保证正常创建,需要先在node2上下载相关镜像
docker pull swarm 
docker pull shipyard/docker-proxy

#3.3、运行 Shipyard代理,实现TLS加密传输,使用shipyard/docker-proxy镜像,(Proxy)
docker run \
    -tid \
    -p 2375:2375 \
    --hostname=$NodeName2 \
    --restart=always \
    --name shipyard-proxy \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e PORT=2375 \
    shipyard/docker-proxy:latest

#3.5、运行 Swarm代理端,使用swarm:latest镜像,(Swarm Agent)
docker run \
    -tid \
    --restart=always \
    --name shipyard-swarm-agent \
    swarm:latest \
    join --addr $(docker-machine ip $NodeName2):2375 etcd://$(docker-machine ip $Manager1):4001

############### Shipyard工作节点 node2的安装完毕!###############################
#3.7、访问方法:

echo http://$(docker-machine ip $Manager1):8080 , 用户名:admin,密码:shipyard
#
########################## 结束 ################################################





参考链接:
https://shipyard-project.com/docs/deploy/
http://www.tuicool.com/articles/FnmeuuN
http://www.cnblogs.com/kevingrace/p/6867820.html
http://www.jianshu.com/p/497615077c71
http://www.cnblogs.com/xuezhigu/p/6734756.html

原创粉丝点击