Sobes.tech
Junior — Middle

Como é que o Docker gere e limite o uso de recursos como CPU e memória para os contêineres?

sobes.tech IA

Resposta da IA

O Docker gere e limita os recursos dos contêineres usando as capacidades do núcleo Linux, como cgroups e namespaces.

  • CPU: é possível limitar o número de núcleos de processador disponíveis ou a proporção de CPU que um contêiner pode usar, usando as flags --cpus, --cpu-shares, --cpu-quota e --cpu-period ao iniciar o contêiner.

  • Memória: a limitação de memória é definida com as flags --memory (quantidade máxima de memória) e --memory-swap (quantidade de swap de memória).

Exemplo de execução de um contêiner com limitação de recursos:

docker run --cpus="1.5" --memory="512m" nginx

Neste exemplo, o contêiner poderá usar no máximo 1.5 CPU e 512 MB de memória RAM.

Assim, o Docker, através de cgroups, controla e isola os recursos para que os contêineres não ultrapassem os limites estabelecidos e não interfiram no funcionamento de outros serviços.