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.