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 orquestadordocker 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 contenedordockerservice 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)dockerservice create --name api --replicas 5 -p 80 aminespinoza/minimal-api
# Corrección usando otro puerto (8080)dockerservice 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 serviciosdockerservicels# Ver tareas/instancias de un serviciodockerserviceps 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éplicasdockerservice scale web=5# Eliminar un serviciodockerservicerm web
# Comprobar el estadodockerservicels# Salir del swarm y forzar la limpiezadocker 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.