规划:manager 192.168.1.72/73/74
consul 192.168.1.72/73/74
leader 192.168.1.74
node 192.168.1.70/71
1、安装discovery 使用consul
第一台(74)
docker run --net=host --name=consul progrium/consul -server -bootstrap -ui-dir=/ui -advertise 192.168.1.74
端口说明:
http 8500
rpc 8400
wan 8302
lan 8301
通信 8300
advertise 指定监听ip,如果不写外网ip,会默认监听内网
剩下2台
docker run --net=host --name=consul progrium/consul -server -join 192.168.1.74 -advertise 192.168.1.73 docker run --net=host --name=consul progrium/consul -server -join 192.168.1.74 -advertise 192.168.1.72
2、安装swarm manager
第一台(74)
docker run -d --net=host --name=swarm-manage swarm manage -H :4000 --replication --advertise 192.168.1.74:4000 consul://192.168.1.74:8500
剩下2台
docker run -d --net=host --name=swarm-manage swarm manage -H :4000 --replication --advertise 192.168.1.73:4000 consul://192.168.1.74:8500 docker run -d --net=host --name=swarm-manage swarm manage -H :4000 --replication --advertise 192.168.1.72:4000 consul://192.168.1.74:8500
3、安装swarm node (70/71)
docker run -d --net=host --name=swarm-node swarm join --advertise=192.168.1.70:2375 consul://192.168.1.74:8500 docker run -d --net=host --name=swarm-node swarm join --advertise=192.168.1.71:2375 consul://192.168.1.74:8500
filter 使用
指定label role=node01 的node 运行nginx
label role=node01 需要自己在daemon中自定义
docker -H :4000 run -d -e constraint:role==node01 --name Iam-node1 nginx
docker -H :4000 run -d -e constraint:role==node02 --name Iam-node2 redis
分别去node1和node2可以看到nginx 运行在node1,redis 运行在node2
本文出自 “银狐” 博客,请务必保留此出处http://foxhound.blog.51cto.com/1167932/1789138
原文地址:http://foxhound.blog.51cto.com/1167932/1789138