Crear un servicio Docker Swarm
En este paso, aprenderemos cómo crear un servicio Docker Swarm. Un servicio Docker Swarm es un conjunto de tareas que se ejecutan en un clúster Swarm. Cada tarea es una instancia de un contenedor. Los servicios son el concepto central de Docker Swarm, lo que te permite definir cuántas réplicas de una imagen de contenedor deben estar en ejecución y cómo deben actualizarse.
Antes de crear un servicio, necesitamos inicializar un Docker Swarm. Dado que estamos ejecutando en una sola máquina virtual (VM), inicializaremos un Swarm de un solo nodo.
Primero, inicialicemos el Swarm:
docker swarm init --advertise-addr 127.0.0.1
Deberías ver una salida que indique que el Swarm se ha inicializado y que el nodo actual es ahora un administrador.
Ahora, creemos un servicio utilizando la imagen nginx
. Nombraremos el servicio my-nginx
y especificaremos que queremos 3 réplicas del contenedor nginx
en ejecución.
Primero, descarguemos la imagen nginx
para asegurarnos de que esté disponible localmente:
docker pull nginx:latest
Ahora, creemos el servicio:
docker service create --name my-nginx --replicas 3 nginx:latest
Este comando crea un nuevo servicio llamado my-nginx
con 3 réplicas utilizando la imagen nginx:latest
. Docker Swarm distribuirá automáticamente estas réplicas entre los nodos del Swarm (en este caso, solo nuestro nodo único).
Para verificar que el servicio se ha creado y que las réplicas están en ejecución, puedes listar los servicios:
docker service ls
Deberías ver my-nginx
en la lista con 3/3 réplicas en ejecución.
También puedes inspeccionar las tareas asociadas con el servicio:
docker service ps my-nginx
Este comando te mostrará las tareas individuales (contenedores) que componen el servicio my-nginx
, su estado actual y el nodo en el que se están ejecutando. Deberías ver 3 tareas en estado Running
.