Skip to content

Instantly share code, notes, and snippets.

@vfarcic
Created January 21, 2017 23:27
Show Gist options
  • Save vfarcic/fd7d7e04e1133fc3c90084c4c1a919fe to your computer and use it in GitHub Desktop.
Save vfarcic/fd7d7e04e1133fc3c90084c4c1a919fe 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 label=com.docker.swarm.service.name=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
@damianoneill
Copy link

Not a port issue, confirmed port exposed

nmap -p 27017 go-demo-db

Starting Nmap 7.12 ( https://nmap.org ) at 2020-01-07 17:25 UTC
Nmap scan report for go-demo-db (10.0.1.2)
Host is up (-0.20s latency).
PORT      STATE    SERVICE
27017/tcp filtered mongod
MAC Address: 02:42:0A:00:01:04 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.46 seconds

@damianoneill
Copy link

Some progress

The problem is with the proxy network, removing this from the service create command allows the service to be created.

$ docker service create --name go-demo    -e DB=go-demo-db    --network go-demo     vfarcic/go-demo:latest
qfqpgs962otjbulsfof0wzvnt
overall progress: 1 out of 1 tasks
1/1: running   [==================================================>]
verify: Service converged

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