Created
January 5, 2016 17:37
-
-
Save sykesm/0791fb90b0b88daa35b4 to your computer and use it in GitHub Desktop.
docker-overlay.sh
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
#!/bin/bash | |
set -e -x | |
# Create the key-value store | |
docker-machine create -d vmwarefusion mh-keystore | |
docker $(docker-machine config mh-keystore) run -d -p "8500:8500" -h "consul" progrium/consul -server -bootstrap | |
# Create the swarm master | |
docker-machine create -d vmwarefusion --vmwarefusion-cpu-count=2 \ | |
--swarm \ | |
--swarm-master \ | |
--swarm-image="swarm" \ | |
--swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \ | |
--engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \ | |
--engine-opt="cluster-advertise=eth0:2376" \ | |
mhs-demo0 | |
# Create swarm slave #1 | |
docker-machine create -d vmwarefusion --vmwarefusion-cpu-count=2 \ | |
--swarm \ | |
--swarm-image="swarm" \ | |
--swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \ | |
--engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \ | |
--engine-opt="cluster-advertise=eth0:2376" \ | |
mhs-demo1 | |
# Create swarm slave #2 | |
docker-machine create -d vmwarefusion --vmwarefusion-cpu-count=2 \ | |
--swarm \ | |
--swarm-image="swarm" \ | |
--swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \ | |
--engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \ | |
--engine-opt="cluster-advertise=eth0:2376" \ | |
mhs-demo2 | |
docker-machine ls | |
# Point to the swarm master | |
eval $(docker-machine env --swarm mhs-demo0) | |
docker info | |
# Create the overlay network | |
docker network create \ | |
-d overlay \ | |
--subnet=10.10.1.4/30 \ | |
--subnet=10.10.1.8/30 \ | |
--subnet=10.10.1.12/30 \ | |
--subnet=10.11.0.0/16 \ | |
my-net | |
# Display the network | |
docker network inspect my-net | |
# run tcpdump on the swarm nodes | |
mkdir -p $HOME/tcpdump | |
docker run -itd --name=tcpdump0 --net=host -v $HOME/tcpdump:/data --env="constraint:node==mhs-demo0" corfr/tcpdump -i any -w /data/mhs-demo0.pcap | |
docker run -itd --name=tcpdump1 --net=host -v $HOME/tcpdump:/data --env="constraint:node==mhs-demo1" corfr/tcpdump -i any -w /data/mhs-demo1.pcap | |
docker run -itd --name=tcpdump2 --net=host -v $HOME/tcpdump:/data --env="constraint:node==mhs-demo2" corfr/tcpdump -i any -w /data/mhs-demo2.pcap | |
# run web servers on mhs-demo0 and mhs-demo1 | |
docker run -itd --name=web0 --net=my-net --env="constraint:node==mhs-demo0" nginx | |
docker run -itd --name=web1 --net=my-net --env="constraint:node==mhs-demo1" nginx | |
docker run -it --rm --net=my-net --env="constraint:node==mhs-demo2" busybox wget -O- http://web0 | |
docker run -it --rm --net=my-net --env="constraint:node==mhs-demo2" busybox wget -O- http://web1 | |
docker kill mhs-demo0/tcpdump0 mhs-demo1/tcpdump1 mhs-demo2/tcpdump2 | |
docker-machine rm mhs-demo0 mhs-demo1 mhs-demo2 mh-keystore |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment