Guía rápida: Docker Swarm (comandos útiles)
Comandos mínimos para operar un clúster: nodos, servicios, tareas, logs, redes, despliegue de stacks y troubleshooting.
Estado del clúster
# Ver nodos y roles (manager/worker)
docker node ls
# Ver estado de Swarm (en un nodo)
docker info | sed -n '/Swarm:/,/Runtimes:/p'
# Tokens de join (en manager)
docker swarm join-token worker
docker swarm join-token manager
Servicios y tareas
# Servicios
docker service ls
# Dónde está corriendo cada réplica
docker service ps <servicio>
# Logs agregados (útil para saber qué worker atendió)
docker service logs -f --timestamps <servicio>
Stacks (tu caso)
# Desplegar/actualizar un stack (compose v3.x)
docker stack deploy -c stack.yml webstack
# Ver servicios del stack
docker stack services webstack
# Ver tareas del stack
docker stack ps webstack
# Logs del servicio del stack
docker service logs -f --timestamps webstack_web
Diagnóstico rápido
# Ver configuración efectiva del servicio
docker service inspect webstack_web --pretty
# Ver redes y validar overlay
docker network ls
docker network inspect webstack_webnet
# Ver uso de disco (logs, imágenes, etc.)
docker system df
Importante: si tienes un proxy (Nginx Proxy Manager / OpenResty) delante, el backend suele ver la IP del proxy.
Para IP real necesitarás configurar X-Forwarded-For y real_ip_header en el nginx backend.
Patrones comunes
replicated
global
constraints
rolling updates
configs / secrets
overlay networks
routing mesh
Actualizaciones y rollback
# Forzar redeploy (reiniciar tareas)
docker service update --force webstack_web
# Cambiar número de réplicas
docker service scale webstack_web=2
# Ver estado de una actualización
docker service ps webstack_web
# Rollback (si hay update fallido o quieres volver atrás)
docker service rollback webstack_web