Building a Multi-Node Docker Swarm

Building a Multi-Node Docker Swarm

1. Environment Setup

Server Name IP Address Role
controller 10.32.161.124 Manager
worker1 10.32.161.125 Worker
worker2 10.32.161.126 Worker

2. Docker CE Installation

Install Docker CE on all nodes following the official documentation.

3. Configure All Nodes

# Update Docker daemon configuration
cat > /etc/docker/daemon. <<EOF
{
    "live-restore": false
}
EOF

# Restart Docker service
systemctl restart docker

# Configure firewall rules
firewall-cmd --permanent --add-port={2377/tcp,7946/tcp,7946/udp,4789/udp}
firewall-cmd --reload

# Install bash completion
dnf install bash-completion -y
</pre>

4. Initialize Swarm on Manager Node

# Initialize swarm on controller node
docker swarm init

5. Join Worker Nodes to Swarm

# On worker1 and worker2, execute the join command
docker swarm join \
--token SWMTKN-1-5yz0ag8l4mqj1gw20kl6fn4j38gj9rs4oefi6pgyuz40wsjotp-1tpgymi77j5idqanazqbpsmoj 10.32.161.124:2377

6. Verify Cluster Nodes

# Check node status on manager
docker node ls

7. Create Services and Deploy Applications

# Create a service with 2 replicas
docker service create --name web_service --replicas=2 -p 80:80 nginx:stable-alpine

# List services
docker service ls

# Inspect service details
docker service inspect web_service --pretty

# Check service tasks
docker service ps web_service

# Test service access
for i in {124..126}; do curl -I 10.32.161.$i; done

# Scale service to 3 instances
docker service scale web_service=3

# Verify updated service tasks
docker service ps web_service

8. Install Portainer CE

# Download deployment file
curl -L https://downloads.portainer.io/ce2-19/portainer-agent-stack.yml -o portainer-agent-stack.yml

# Deploy Portainer stack
docker stack deploy -c portainer-agent-stack.yml portainer

# Check stack services
docker stack ps portainer

Access Portainer at: http://Manager_IP:9000/

Default credentials: admin

Tags: docker swarm containerization orchestration

Posted on Sun, 31 May 2026 21:33:05 +0000 by Redneckheaven