Skip to content

Instantly share code, notes, and snippets.

@ruanbekker
Last active November 7, 2021 21:45
Show Gist options
  • Select an option

  • Save ruanbekker/b958e058007bc9538f96075d1a5b0884 to your computer and use it in GitHub Desktop.

Select an option

Save ruanbekker/b958e058007bc9538f96075d1a5b0884 to your computer and use it in GitHub Desktop.
Setup Docker-in-Docker Swarm
#!/bin/bash
# Credit: https://callistaenterprise.se/blogg/teknik/2017/12/18/docker-in-swarm-mode-on-docker-in-docker/
# https://hub.docker.com/_/docker?tab=tags
# https://www.blog.labouardy.com/docker-swarm-networking-and-dynamic-reverse-proxy/
SWARM_ENABLED=true
DOCKER_VERSION=18.06.3-ce-dind
NUM_WORKERS=3
if [ ${SWARM_ENABLED} == "false" ]
then
docker swarm init
fi
SWARM_TOKEN=$(docker swarm join-token -q worker)
echo $SWARM_TOKEN
SWARM_MASTER_IP=$(docker info | grep -w 'Node Address' | awk '{print $3}')
echo $SWARM_MASTER_IP
for i in $(seq "${NUM_WORKERS}"); do
docker run -d --privileged --name worker-${i} --hostname=worker-${i} -p ${i}2375:2375 docker:${DOCKER_VERSION}
docker --host=localhost:${i}2375 swarm join --token ${SWARM_TOKEN} ${SWARM_MASTER_IP}:2377
done
sleep 10
docker network create --driver overlay docknet
docker service create \
--detach=true \
--name=viz \
--publish=8000:8080/tcp \
--constraint=node.role==manager \
--network docknet \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
dockersamples/visualizer
docker service create \
--name swarm-viz \
--constraint=node.role==manager \
-p 3001:3000 \
--network docknet \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
mikesir87/swarm-viz
docker service create \
--constraint node.role==manager \
--replicas 1 \
--constraint=node.role==manager \
--name dvizz -p 3002:6969 \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--network docknet \
liske/dvizz
docker service create \
--name quotes-service \
--detach=true -p 8080:8080 \
--network docknet \
magnuslarsson/quotes:go-22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment