docker compose scale

O comando docker compose scale era utilizado para escalar o número de réplicas de um serviço específico definido em um arquivo docker-compose.yml. Esse comando permitia aumentar ou diminuir a quantidade de contêineres em execução para um serviço, facilitando o gerenciamento de carga e a disponibilidade dos serviços.

Importante: A partir da versão 3.x do Docker Compose, o comando scale foi substituído pela opção --scale utilizada em conjunto com o comando docker compose up. Portanto, docker compose scale é obsoleto para as versões mais recentes do Docker Compose, e o uso da nova abordagem é recomendado.

Uso Obsoleto (Versões Anteriores ao Docker Compose 3.x)

Sintaxe

docker compose scale [OPÇÕES] SERVIÇO=NUMERO_DE_CONTÊINERES [OUTRO_SERVIÇO=NUMERO_DE_CONTÊINERES...]

Parâmetros

  • SERVIÇO=NUMERO_DE_CONTÊINERES: Define o nome do serviço e o número de réplicas que você deseja escalar. Você pode especificar múltiplos serviços, cada um com o número desejado de réplicas.

Exemplo de Uso

  1. Escalar um Único Serviço: Para escalar o serviço web para 3 réplicas:

    docker compose scale web=3
  2. Escalar Múltiplos Serviços: Para escalar o serviço web para 3 réplicas e o serviço db para 2 réplicas:

    docker compose scale web=3 db=2

Abordagem Atual (Versões Mais Recentes do Docker Compose)

Em versões mais recentes do Docker Compose (3.x e superiores), a escalabilidade de serviços é alcançada utilizando a opção --scale com o comando docker compose up.

Sintaxe

Exemplo de Uso

  1. Escalar um Serviço Usando o Novo Método: Para escalar o serviço web para 3 réplicas com as versões mais recentes do Docker Compose:

Considerações

  • Persistência de Escala: Quando você escala um serviço usando docker compose up --scale, o número de réplicas é mantido até que você altere manualmente ou pare os contêineres.

  • Compatibilidade: Se você estiver utilizando uma versão anterior ao Docker Compose 3.x, você pode continuar utilizando docker compose scale, mas a migração para a nova sintaxe é recomendada para manter a compatibilidade futura.

  • Gerenciamento de Recursos: Ao escalar serviços, tenha em mente o impacto no consumo de recursos do sistema, como CPU e memória. Escalar demasiadamente pode levar à saturação de recursos em ambientes limitados.

  • Balanceamento de Carga: Ao escalar serviços que expõem portas para a rede, o balanceamento de carga entre as réplicas é essencial para garantir distribuição uniforme das solicitações. O Docker Compose não gerencia automaticamente o balanceamento de carga, então essa responsabilidade pode recair sobre um proxy reverso ou um serviço de orquestração.

A nova abordagem usando --scale com docker compose up permite uma gestão mais integrada e atualizada da escalabilidade dos serviços, alinhando-se melhor com práticas modernas de desenvolvimento e operação com contêineres.

Last updated