Gerenciando e Escalando a Pilha Docker Swarm
Depois de implantar sua aplicação multi-serviço como uma pilha Docker Swarm, você pode usar vários comandos para gerenciá-la e escalá-la.
Implantando a Pilha
Para implantar sua aplicação como uma pilha Docker Swarm, você pode usar o comando docker stack deploy:
docker stack deploy -c docker-compose.yml my-app
Isso criará os serviços Swarm com base nas configurações em seu arquivo docker-compose.yml.
Monitorando a Pilha
Você pode usar os seguintes comandos para monitorar o status de sua pilha Swarm:
## Listar os serviços em execução
docker stack services my-app
## Listar as tarefas (instâncias de contêiner) para um serviço
docker service ps my-app_web
## Visualizar os logs de um serviço
docker service logs my-app_web
Escalando a Pilha
Para escalar um serviço em sua pilha Swarm, você pode usar o comando docker service scale:
## Escalar o serviço "web" para 5 réplicas
docker service scale my-app_web=5
Isso criará mais 4 instâncias do serviço web, e o Docker Swarm automaticamente balanceará a carga entre elas.
graph LR
client[Cliente] --> load_balancer[Balanceador de Carga]
load_balancer --> web1[Serviço Web]
load_balancer --> web2[Serviço Web]
load_balancer --> web3[Serviço Web]
load_balancer --> web4[Serviço Web]
load_balancer --> web5[Serviço Web]
web1 --> db[Serviço de Banco de Dados]
web2 --> db
web3 --> db
web4 --> db
web5 --> db
Atualizando a Pilha
Para atualizar sua pilha Swarm com uma nova versão de um serviço, você pode usar o comando docker service update:
## Atualizar o serviço "web" para usar uma nova imagem
docker service update my-app_web --image labex/web-app:v2
Isso atualizará o serviço web gradualmente, substituindo os contêineres antigos pelos novos sem interromper o serviço.
Usando esses comandos, você pode gerenciar e escalar sua pilha Docker Swarm de forma eficaz, garantindo alta disponibilidade e desempenho de sua aplicação multi-serviço.