Notícias
Novos modelos de linguagem da API Serverspace GPT
Serverspace Black Friday
DF
abril 29, 2025
Atualizado abril 29, 2025

Como trabalhar com recursos de contêiner do Docker?

Os contêineres Docker permitem executar aplicações em um ambiente isolado, mas sem um gerenciamento adequado de recursos, um único contêiner pode consumir CPU, memória ou outros recursos do host em excesso. Neste artigo, vamos abordar como limitar e controlar o uso de recursos pelos contêineres para garantir um funcionamento estável e previsível dos seus serviços.

Por que é importante limitar os recursos?

Por padrão, um contêiner pode utilizar todos os recursos disponíveis do host. Isso pode causar:

  • Lentidão em outros processos;
  • Funcionamento incorreto de múltiplos contêineres;
  • Comportamento imprevisível do sistema.

O Docker permite definir limites para CPU, memória, disco e I/O, evitando esses problemas.

1. Limite de memória

Exemplo de comando:

docker run -m 512m --memory-swap 1g nginx

Explicação:

  • -m 512m: limita a memória disponível ao contêiner para 512 megabytes.
  • --memory-swap 1g: define o limite total de RAM + swap como 1 gigabyte. Se o contêiner usar mais de 512MB de RAM, ele poderá usar até 512MB adicionais de swap.

Importante: Um contêiner que exceder o limite de memória será encerrado com erro de “Out of Memory”.

2. Limite de CPU

Exemplo de comando:

docker run --cpus="1.5" nginx

Explicação:

  • --cpus="1.5": o contêiner pode usar até 1,5 núcleos de CPU, útil em sistemas com múltiplos núcleos.

Método alternativo:

docker run --cpu-shares=512 nginx
  • --cpu-shares: define a prioridade relativa da CPU. O valor padrão é 1024. Valores menores indicam menor prioridade.

3. Limite de I/O (operações de disco)

Exemplo de comando:

docker run --device-read-bps /dev/sda:1mb nginx

Explicação:

  • --device-read-bps: limita a taxa de leitura do dispositivo /dev/sda para 1 megabyte por segundo.

Outras opções disponíveis:

  • --device-write-bps
  • >--device-read-iops
  • --device-write-iops

 

 

4. Limite de processos (PIDs)

Essa opção ajuda a prevenir fork bombs e sobrecarga de processos:

docker run --pids-limit=100 nginx

O contêiner não poderá criar mais de 100 processos.

5. Usando limites no docker-compose.yml

É possível definir limites de recursos no docker-compose usando a diretiva deploy.resources.limits, por exemplo:

version: "3.9"
services:
web:
image: nginx
deploy:
resources:
limits:
cpus: '0.50'
memory: 256M
Importante: A seção deploy funciona apenas com Docker Swarm. Para ambientes de desenvolvimento local, utilize opções como mem_limit, cpus, etc.

6. Monitoramento de recursos

Ferramentas úteis para monitorar o uso de recursos dos contêineres incluem:

  • docker stats
  • Prometheus
  • Grafana
  • cAdvisor

Conclusão

Limitar os recursos de contêineres é essencial para construir uma infraestrutura confiável e escalável. Utilize esses mecanismos para garantir que os contêineres não interfiram entre si e não sobrecarreguem o host. Isso é especialmente importante em ambientes de produção, onde previsibilidade e isolamento são fundamentais para a operação estável dos serviços.

Avaliação:
5 fora de 5
Аverage rating : 5
Avaliado por: 1
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.