Skip to main content

Docker Swarm Configuration for InkBlink

Requirements

Tailscale Download (MAC/PC) Download | Tailscale
Docker Swarm (PC) Windows | Docker Docs

Docker Swarm + Tailscale

Due to conflicts between docker swarm initializing a custom network as the listening address, a tailscale image will run in a container to provide access to host as a proxy.

Steps to Initialize Tailscale Proxy (One machine in swarm cluster)
docker compose -f tailscale-compose.yaml up -d
#IPv4 Address of Container Running Tailscale (not local machine ip)
#Use this IP to initialize Docker Swarm
docker exec tailscale-proxy tailscale ip -4

To verify docker swarm has been initiated, check if port 2377 is listening

 netstat -an | grep 2377

Expected Terminal Output

$ netstat -an | grep 2377
  TCP    [::1]:2377             [::]:0                 LISTENING
Join Docker Swarm as Manager
docker swarm join --token SWMTKN-1-3d5d79nba8q7gwtjhdawcl6eanznxn9fvhjrpcwjqx7vwfijya-65qikauecpqd0dbulv5rlnl7m 100.79.134.37:2377
Join Docker Swarm as Worker**
docker swarm join --token SWMTKN-1-3d5d79nba8q7gwtjhdawcl6eanznxn9fvhjrpcwjqx7vwfijya-2frcvp3wgfg1ifs5dnpxpt1jo 100.79.134.37:2377

Initialize Docker Swarm
TAILSCALE_IP=$(tailscale ip -4)
echo "Tailscale IP is : $TAILSCALE_IP"
docker swarm init --advertise-addr "$TAILSCALE_IP" --listen-addr 0.0.0.0:2377