Docker Swarm para principiantes paso a paso

Clase 29 de 34Curso de Docker Avanzado

Resumen

Aprende a orquestar contenedores de forma simple con Docker Swarm. Verás cómo un orquestador de contenedores gestiona red, algunos volúmenes y despliegues, para que dediques tu tiempo a lo importante: los servicios. Empezarás con comandos básicos para crear servicios, definir réplicas, resolver conflictos de puertos, escalar en caliente y limpiar el entorno.

¿Qué es un orquestador de contenedores y por qué empezar con Docker Swarm?

Un orquestador automatiza tareas clave: red, volúmenes y despliegues coordinados. Así evitas repetir configuraciones y te apoyas en una capa que mantiene todo funcionando. Entre los orquestadores, Kubernetes es “el mejor”, pero es grande y demanda tiempo. Para dar los primeros pasos, la recomendación es usar Docker Swarm, el orquestador por defecto de Docker, ideal para practicar localmente con un “mini orquestador”.

  • Orquestador de contenedores: gestiona red, volúmenes y despliegues por ti.
  • Kubernetes: potente, pero de gran tamaño y curva alta.
  • Docker Swarm: inicio rápido y práctico en local.
  • Servicio y réplicas: despliegue como servicio con múltiples instancias.

¿Cómo iniciar Docker Swarm y crear servicios con réplicas?

Comienza desde la terminal. Inicializa el swarm y crea tu primer servicio con réplicas. Verás cómo el orquestador descarga imágenes y levanta instancias automáticamente.

# Inicializar el orquestador
docker swarm init

¿Cómo crear el servicio web con NGINX?

Crea un servicio llamado “web” con 3 réplicas y publica un puerto. La imagen utilizada es NGINX.

# Servicio web con NGINX y 3 réplicas
# Publicando el puerto 80 en el host hacia el 80 del contenedor
docker service create --name web --replicas 3 -p 80:80 nginx
  • El orquestador descarga la imagen si no existe.
  • Levanta tantas réplicas como indiques.
  • Publica el puerto para acceso externo.

¿Qué hacer cuando un puerto ya está en uso?

Al crear otro servicio, si reutilizas un puerto ya ocupado, fallará. Cambia a un puerto libre y vuelve a ejecutar.

# Intento inicial (puerto 80 en uso)
docker service create --name api --replicas 5 -p 80 aminespinoza/minimal-api

# Corrección usando otro puerto (8080)
docker service create --name api --replicas 5 -p 8080 aminespinoza/minimal-api
  • No puedes usar el mismo puerto dos veces.
  • Ajusta el mapeo y reintenta.

¿Cómo ver servicios y tareas en ejecución?

Lista servicios activos, sus réplicas y puertos mapeados. Luego inspecciona el detalle de un servicio.

# Listar servicios
docker service ls

# Ver tareas/instancias de un servicio
docker service ps api
  • Verás el estado “running” y la cantidad de instancias.
  • Las tareas se nombran como “api.1”, “api.2”, etc.
  • Encontrarás columnas de errores y puertos para diagnóstico rápido.

¿Cómo escalar, eliminar y salir del swarm?

Si un servicio necesita más capacidad, escala sus réplicas sin redesplegar desde cero. También puedes eliminar servicios y, al final, salir del swarm para limpiar todo.

# Escalar el servicio web a 5 réplicas
docker service scale web=5

# Eliminar un servicio
docker service rm web

# Comprobar el estado
docker service ls

# Salir del swarm y forzar la limpieza
docker swarm leave --force
  • Escalado inmediato: más “vitaminas” sin interrumpir el servicio.
  • Limpieza controlada: elimina servicios que ya no necesitas.
  • También puedes visualizar las instancias en Docker Desktop.

Habilidades y conceptos reforzados: - Inicializar un orquestador con docker swarm init. - Desplegar un servicio con docker service create. - Definir réplicas y exponer puertos sin repetir contenedores manualmente. - Listar e inspeccionar servicios con docker service ls y docker service ps. - Escalar servicios con docker service scale. - Eliminar servicios y salir del swarm con docker service rm y docker swarm leave --force.

¿Te quedó alguna duda o quieres compartir tu experiencia con Docker Swarm y réplicas? Deja tu pregunta o comentario y seguimos la conversación.