docker-swarm

前段时间,我和公司的运维朋友一起玩了下docker。在配置docker-swarm的时候,运维朋友可以安逸地开启aws,可怜的我只能默默地在自己的单机上面搭建了~~

所以,才有了今天在用docker-machine来搭建docker-swarm,这份教程基本是按照docker-swram的官方教程改的~

创建docker-machine

1
2
3
4
5
docker-machine create --driver virtualbox consul
docker-machine create --driver virtualbox manager1
docker-machine create --driver virtualbox manager2
docker-machine create --driver virtualbox node1
docker-machine create --driver virtualbox node2

配置consul

切换到consul虚机里面:

1
eval $(docker-machine env consul)

启动consul服务:

1
docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

配置manager节点

配置manager1节点:

1
2
eval $(docker-machine env manager1)
docker run -d -p 4000:4000 -v /var/lib/boot2docker:/certs:ro swarm manage -H :4000 --tlsverify --tlscacert=/certs/ca.pem --tlscert=/certs/server.pem --tlskey=/certs/server-key.pem --replication --advertise $(docker-machine ip manager1):4000 consul://$(docker-machine ip consul):8500

配置manager2节点:

1
2
eval $(docker-machine env manager2)
docker run -d -p 4000:4000 -v /var/lib/boot2docker:/certs:ro swarm manage -H :4000 --tlsverify --tlscacert=/certs/ca.pem --tlscert=/certs/server.pem --tlskey=/certs/server-key.pem --replication --advertise $(docker-machine ip manager2):4000 consul://$(docker-machine ip consul):8500

配置node节点

配置node1节点

1
2
eval $(docker-machine env node1)
docker run -d swarm join --advertise=$(docker-machine ip node1):2376 consul://$(docker-machine ip consul):8500

配置node2节点

1
2
eval $(docker-machine env node2)
docker run -d swarm join --advertise=$(docker-machine ip node2):2376 consul://$(docker-machine ip consul):8500

测试

1
docker -H :4000 --tlsverify --tlscacert=/var/lib/boot2docker/ca.pem --tlscert=/var/lib/boot2docker/server.pem --tlskey=/var/lib/boot2docker/server-key.pem run hello-world