Skip to content

Instantly share code, notes, and snippets.

@vfarcic
Created January 10, 2017 21:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save vfarcic/fc88da0d389d3a8b56d666ea3f25cdc0 to your computer and use it in GitHub Desktop.
Save vfarcic/fc88da0d389d3a8b56d666ea3f25cdc0 to your computer and use it in GitHub Desktop.
for i in 1 2 3; do
docker-machine create -d virtualbox node-$i
done
eval $(docker-machine env node-1)
docker swarm init \
--advertise-addr $(docker-machine ip node-1)
TOKEN=$(docker swarm join-token -q worker)
for i in 2 3; do
eval $(docker-machine env node-$i)
docker swarm join \
--token $TOKEN \
--advertise-addr $(docker-machine ip node-$i) \
$(docker-machine ip node-1):2377
done
eval $(docker-machine env node-1)
docker node ls
docker service create --name go-demo-db \
mongo:3.2.10
docker service inspect --pretty go-demo-db
docker service rm go-demo-db
docker network create --driver overlay go-demo
docker service create --name go-demo-db \
--network go-demo \
mongo:3.2.10
docker service inspect --pretty go-demo-db
docker service create --name util \
--network go-demo --mode global \
alpine sleep 1000000000
docker service ps util
ID=$(docker ps -q --filter label=com.docker.swarm.service.name=util)
docker exec -it $ID apk add --update drill
docker exec -it $ID drill go-demo-db
docker network create --driver overlay proxy
docker network ls -f "driver=overlay"
docker service create --name go-demo \
-e DB=go-demo-db \
--network go-demo \
--network proxy \
vfarcic/go-demo:1.0
docker service create --name proxy \
-p 80:80 \
-p 443:443 \
-p 8080:8080 \
--network proxy \
-e MODE=swarm \
vfarcic/docker-flow-proxy
docker service ps proxy
curl "$(docker-machine ip node-1):8080/v1/docker-flow-proxy/reconfigure?serviceName=go-demo&servicePath=/demo&port=8080"
curl -i $(docker-machine ip node-1)/demo/hello
curl -i $(docker-machine ip node-3)/demo/hello
NODE=$(docker service ps proxy | tail -n +2 | awk '{print $4}')
eval $(docker-machine env $NODE)
ID=$(docker ps -q --filter "ancestor=vfarcic/docker-flow-proxy")
docker exec -it \
$ID cat /cfg/haproxy.cfg
eval $(docker-machine env node-1)
docker service scale go-demo=5
ID=$(docker ps -q --filter label=com.docker.swarm.service.name=util)
docker exec -it $ID apk add --update drill
docker exec -it $ID drill go-demo
docker-machine rm -f node-1 node-2 node-3
@watsh-rajneesh
Copy link

watsh-rajneesh commented Mar 14, 2017

For getting ID i needed to use:

ID=$(docker ps -a | grep vfarcic/docker-flow-proxy | awk '{print $1}')

or the one in the book:

ID=$(docker ps -q --filter label=com.docker.swarm.service.name=proxy)

as for some reason

docker ps -q --filter ancestor=vfarcic/docker-flow-proxy

does not work in Docker version 17.03.0-ce, build 60ccb22

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment