Created
August 31, 2015 15:49
-
-
Save ioggstream/8a5dff72460c157dea78 to your computer and use it in GitHub Desktop.
Create a swarm with overlay network - virtualbox.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
unset DOCKER_HOST DOCKER_MACHINE_NAME DOCKER_MACHINE_NAME DOCKER_TLS_VERIFY DOCKER_CERT_PATH | |
export SWARM_TOKEN=$(cat swarm.token) | |
echo $SWARM_TOKEN | |
CONSUL_IP=$(docker-machine ip consul) | |
_cluster="A" | |
_master=${_cluster}-0 | |
_cert_home="$HOME/.docker/machine/machines/${_master}" | |
# create swarm master and copy certs in .docker folder | |
docker-machine create -d virtualbox --virtualbox-boot2docker-url=./boot2docker-1.8.iso \ | |
--engine-opt="default-network=overlay:multihost" \ | |
--engine-opt="kv-store=consul:$(docker-machine ip consul):8500" \ | |
--engine-label="com.docker.network.driver.overlay.bind_interface=eth1" \ | |
${_master} | |
#docker-machine scp -r ~/.docker/machine/machines/A-0/ A-0:/home/docker/.docker/ | |
for f in ${_cert_home}/{server.pem,server-key.pem,ca.pem}; do | |
docker-machine ssh ${_master} " | |
mkdir /home/docker/.docker/${_master}/; | |
chown docker:docker /home/docker/.docker/${_master}/; | |
" | |
docker-machine scp -r "$f" ${_master}:/home/docker/.docker/${_master}/ | |
done | |
# create the swarm processes with bridge. | |
docker $(docker-machine config ${_master}) run -d \ | |
--restart="always" \ | |
--net="bridge" \ | |
swarm:latest join --addr "$(docker-machine ip ${_master}):2376" "token://$SWARM_TOKEN" | |
# Map cluster certs to Swarm container. | |
docker $(docker-machine config ${_master}) run -d \ | |
--restart="always" \ | |
--net="bridge" \ | |
-p "3376:3376" \ | |
-v "/home/docker/.docker/${_master}:/etc/docker" \ | |
swarm:latest manage \ | |
--tlsverify --tlscacert="/etc/docker/ca.pem" \ | |
--tlscert="/etc/docker/server.pem" --tlskey="/etc/docker/server-key.pem" \ | |
-H "tcp://0.0.0.0:3376" \ | |
--strategy spread "token://$SWARM_TOKEN" | |
# | |
# Add further nodes. | |
# | |
for _nid in {1..1}; do | |
_hostid=${_cluster}-${_nid} | |
docker-machine create -d virtualbox --virtualbox-boot2docker-url=./boot2docker-1.8.iso \ | |
--engine-opt="default-network=overlay:multihost" \ | |
--engine-opt="kv-store=consul:$CONSUL_IP:8500" \ | |
--engine-label="com.docker.network.driver.overlay.bind_interface=eth1" \ | |
--engine-label="com.docker.network.driver.overlay.neighbor_ip=$(docker-machine ip ${_master})" \ | |
${_hostid} | |
# create another swarm process | |
docker $(docker-machine config ${_hostid}) run -d \ | |
--restart="always" \ | |
--net="bridge" \ | |
swarm:latest join --addr "$(docker-machine ip ${_hostid}):2376" "token://$SWARM_TOKEN" | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment