Primeros pasos con Docker Swarm: Orquestación de Contenedores

Clase 29 de 34Curso de Docker Avanzado

Resumen

¿Qué es un orquestador de contenedores?

En el mundo de la administración de sistemas, los orquestadores de contenedores han revolucionado la manera en que desplegamos y gestionamos aplicaciones. Estos poderosos aliados automáticos se encargan de gestionar la red, volúmenes y despliegue de contenedores, liberándote de una gran carga de tareas rutinarias. Entre ellos, Kubernetes destaca como el líder indiscutible, aunque su complejidad puede ser intimidante para quienes inician en este campo. Por suerte, Docker Swarm ofrece una alternativa más accesible para adentrarse en esta tecnología.

¿Cómo iniciar con Docker Swarm?

Docker Swarm es el orquestador de contenedores por defecto de Docker y es ideal para dar los primeros pasos en orquestación. Comenzar a trabajar con él es sorprendentemente sencillo y rápido.

Iniciando Docker Swarm

Para inicializar Docker Swarm, simplemente abre tu terminal y escribe el siguiente comando:

docker swarm init

Este sencillo paso establece el entorno necesario para que Docker Swarm gestione tus contenedores.

Creando servicios con Docker Swarm

El manejo de servicios es fundamental al utilizar Docker Swarm. La creación de servicios te permite desplegar contenedores de forma controlada y replicada. Aquí te muestro cómo hacerlo:

  1. Para crear un servicio llamado "web" con tres réplicas de la imagen nginx, utiliza el siguiente comando:

    docker service create --name web --replicas 3 -p 8080:80 nginx

La opción -p 8080:80 indica que el puerto 8080 del host se mapeará al puerto 80 del contenedor.

  1. Para un servicio llamado "API" con cinco réplicas, usa este comando:

    docker service create --name api --replicas 5 -p 8081:80 username/minimal-api

Recuerda ajustar los puertos si tienes conflictos.

Monitoreando y gestionando servicios

Una vez creados, es crucial monitorear el estado de los servicios desplegados. Docker Swarm proporciona comandos para este propósito:

  • Para listar los servicios actuales:

    docker service ls

Esto permite conocer qué servicios están activos y cuántas réplicas se están ejecutando.

  • Para obtener detalles de un servicio específico como "API":

    docker service ps api

Este comando muestra el estado de las réplicas, identificándolas por nombres secuenciales como api.1, api.2, etc.

Escalar servicios en Docker Swarm

Si necesitas aumentar el poder de procesamiento de tu servicio "web", puedes aumentar el número de réplicas sin interrumpir el servicio:

docker service scale web=5

Docker Swarm automáticamente ajustará el número de contenedores a cinco réplicas.

Eliminando servicios y limpiando el entorno

Cuando ya no necesitas un servicio, Docker Swarm facilita su eliminación:

  • Para eliminar el servicio "web":

    docker service rm web

Para quitar todos los servicios y salir del modo Swarm, emplea:

docker swarm leave --force

Esto asegura que tus nodos abandonen el Swarm, dejando tu entorno limpio y listo para nuevos proyectos.

En resumen, Docker Swarm te permite gestionar de manera efectiva y eficiente tus contenedores mientras experimentas y aprendes los fundamentos de la orquestación. ¡Anímate a seguir explorando y viendo cómo tus aplicaciones cobran vida con esta poderosa herramienta!