🐝 Docker Swarm
Встроенная оркестрация Docker: кластер, сервисы, стеки, масштабирование.
Шпаргалки · Инфраструктура · #docker #swarm #orchestration
Кластер
docker swarm init --advertise-addr <ip> # первый узел (manager)
docker swarm join-token worker # токен для рабочего узла
docker swarm join --token <token> <ip>:2377 # на worker
docker node ls # узлы
docker node promote|demote <node>
docker swarm leave [--force]
Порты: 2377/tcp (управление), 7946 (узлы), 4789/udp (overlay).
Сервисы
docker service create --name web --replicas 3 -p 80:80 nginx
docker service ls
docker service ps web
docker service scale web=5
docker service update --image nginx:1.27 web # плавное обновление
docker service logs -f web
docker service rm web
Стек (compose-файл для Swarm)
services:
web:
image: nginx
deploy:
replicas: 3
update_config: { parallelism: 1, delay: 10s }
restart_policy: { condition: on-failure }
placement:
constraints: [node.role == worker]
ports: ["80:80"]
docker stack deploy -c stack.yaml app
docker stack ls; docker stack services app; docker stack rm app
Сети, секреты и конфиги
docker network create -d overlay net
echo "pass" | docker secret create db_pass -
docker config create nginx_conf ./nginx.conf
В сервисе секрет доступен как файл /run/secrets/db_pass.
Swarm или Kubernetes
Swarm проще и поднимается за минуты, подходит для небольших кластеров. Kubernetes богаче экосистемой, автомасштабированием и поддержкой облаков.