Docker Swarm Configuration for InkBlink
Setup
| 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
Join Docker Swarm as Manager
docker swarm join --token SWMTKN-1-02wfprfajaadqgikj5c1bkas15zgkfp6d314lqh8e2w98f8f1o-32839oqlr8e70n9mwuw10acmf 100.102.91.58:2377
Join Docker Swarm as Worker**
docker swarm join --token SWMTKN-1-0b6xiw3t04rexf66zno478qwc3dlldqqlta7jielsme50yzk9p-28lqq8xzxb9zko29rk2xo5ypz 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
If Tailscale Device is Not Recognizable by Docker ( WINDOWS - WSL Alternative )
* For Initializing Swarm
#!/bin/bash
# Run on WSL, using powershell,
# wsl --install
# wsl -l -v
set -e
echo "==============================="
echo " Installing Docker..."
echo "==============================="
sudo apt update
sudo apt install -y docker.io
sudo usermod -aG docker $USER
newgrp docker
echo "Docker installed."
echo "==============================="
echo " Installing Tailscale..."
echo "==============================="
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
TAILSCALE_IP=$(tailscale ip -4)
echo "Tailscale connected. IP: $TAILSCALE_IP"
echo "==============================="
echo " Initializing Docker Swarm..."
echo "==============================="
docker swarm init --advertise-addr "$TAILSCALE_IP" --listen-addr 0.0.0.0:2377
echo "Docker Swarm initialized with Tailscale IP."
#echo ""
#echo " Run this on other nodes to join the swarm:"
#docker swarm join-token manager | grep 'docker swarm join'
SWMTKN-1-5m4nddvvdfgg26npk3batd4qp31qyekiuewgnh92xnj66wqsk5-8rhcoh23k6slunc4j3r8u4xwi