Docker Swarm Nedir?
Docker'ın built-in container orchestration aracıdır. Birden fazla Docker host'u tek bir cluster olarak yönetir.
Swarm Başlatma
# Manager node olarak başlat
docker swarm init --advertise-addr 192.168.1.100
# Worker token al
docker swarm join-token worker
# Manager token al
docker swarm join-token manager
Worker Ekleme
docker swarm join \
--token SWMTKN-1-xxx \
192.168.1.100:2377
Node Yönetimi
# Node listele
docker node ls
# Node detayları
docker node inspect node_name
# Node'u drain et (servis çalıştırma)
docker node update --availability drain node_name
# Node'u aktif et
docker node update --availability active node_name
Service Oluşturma
# Basit service
docker service create --name web nginx
# Replika ile
docker service create --name web --replicas 3 -p 80:80 nginx
# Service listele
docker service ls
# Service detayları
docker service ps web
# Scale
docker service scale web=5
# Güncelle
docker service update --image nginx:alpine web
# Sil
docker service rm web
Stack Deploy
# docker-stack.yml
version: '3.8'
services:
web:
image: nginx
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
ports:
- "80:80"
# Deploy
docker stack deploy -c docker-stack.yml mystack
# Stack listele
docker stack ls
# Stack servisleri
docker stack services mystack
# Stack sil
docker stack rm mystack