Administración y Escalado de la Pila Docker Swarm
Una vez que hayas implementado tu aplicación multiservicio como una pila Docker Swarm, puedes usar varios comandos para administrarla y escalarla.
Implementación de la Pila
Para implementar tu aplicación como una pila Docker Swarm, puedes usar el comando docker stack deploy:
docker stack deploy -c docker-compose.yml my-app
Esto creará los servicios Swarm basados en las configuraciones de tu archivo docker-compose.yml.
Monitoreo de la Pila
Puedes usar los siguientes comandos para monitorear el estado de tu pila Swarm:
## Listar los servicios en ejecución
docker stack services my-app
## Listar las tareas (instancias de contenedor) para un servicio
docker service ps my-app_web
## Ver los registros de un servicio
docker service logs my-app_web
Escalado de la Pila
Para escalar un servicio en tu pila Swarm, puedes usar el comando docker service scale:
## Escalar el servicio "web" a 5 réplicas
docker service scale my-app_web=5
Esto creará 4 instancias más del servicio web, y Docker Swarm equilibrará automáticamente el tráfico entre ellas.
graph LR
client[Cliente] --> load_balancer[Balanceador de carga]
load_balancer --> web1[Servicio Web]
load_balancer --> web2[Servicio Web]
load_balancer --> web3[Servicio Web]
load_balancer --> web4[Servicio Web]
load_balancer --> web5[Servicio Web]
web1 --> db[Servicio de Base de Datos]
web2 --> db
web3 --> db
web4 --> db
web5 --> db
Actualización de la Pila
Para actualizar tu pila Swarm con una nueva versión de un servicio, puedes usar el comando docker service update:
## Actualizar el servicio "web" para usar una nueva imagen
docker service update my-app_web --image labex/web-app:v2
Esto realizará una actualización progresiva del servicio web, reemplazando los contenedores antiguos por los nuevos sin interrumpir el servicio.
Usando estos comandos, puedes administrar y escalar eficazmente tu pila Docker Swarm para garantizar la alta disponibilidad y el rendimiento de tu aplicación multiservicio.