📦 Docker Swarm = Container Orchestration
Running containers at scale needs orchestration. Docker Swarm provides native clustering and orchestration.
📝 Swarm Setup
# Initialize Swarm docker swarm init --advertise-addr 192.168.1.100 # Add Worker Nodes docker swarm join --token SWMTKN-1-... 192.168.1.100:2377 # List Nodes docker node ls # Create Service docker service create --name web --replicas 3 -p 80:80 nginx # Scale Service docker service scale web=5 # Update Service docker service update --image nginx:latest web # Remove Service docker service rm web # Service Status docker service ls docker service ps web docker service logs web
🎯 Advanced Swarm Features
# Stack Deployment
version: '3.8'
services:
web:
image: nginx
deploy:
replicas: 3
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
networks:
- webnet
database:
image: postgres:15
deploy:
replicas: 1
networks:
- webnet
networks:
webnet:
# Deploy Stack
docker stack deploy -c docker-compose.yml myapp
# Stack Commands
docker stack ls
docker stack ps myapp
docker stack services myapp
docker stack rm myapp
# Secrets Management
echo "password" | docker secret create db_password -
docker service create --secret db_password nginx
# Configs
docker config create app_config app.conf
docker service create --config app_config nginx
💡 Swarm Best Practices
- Use stacks for complex applications
- Implement rolling updates
- Use secrets for sensitive data
- Monitor service health
- Regularly update services
Docker Swarm provides built-in orchestration with the same simplicity as Docker. It’s perfect for getting started with containers at scale.
