Servicio activo en Docker Swarm

Hola desde Docker Swarm

Esta página se sirve desde un servicio replicado en Swarm. Si usas routing mesh (modo ingress), cada petición puede terminar en cualquier réplica.

Tip: para saber qué nodo respondió, lo fiable es mirar docker service logs

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