Skip to main content

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