Criar um container com limites de recursos iniciais
Nesta etapa, você aprenderá como criar um container Docker e definir limites de recursos iniciais para CPU e memória. Os limites de recursos são importantes para evitar que um único container consuma todos os recursos disponíveis na máquina host, o que pode impactar o desempenho de outros containers e do próprio host.
Primeiro, vamos baixar a imagem ubuntu do Docker Hub. Esta imagem será usada como base para nosso container.
docker pull ubuntu:latest
Você deve ver uma saída indicando que a imagem está sendo baixada e extraída.
Agora, vamos criar um container chamado my-limited-container com limites de recursos específicos. Usaremos o comando docker run com as flags --cpus e --memory.
A flag --cpus limita a quantidade de recursos de CPU que o container pode usar. O valor é um número de ponto flutuante que representa o número de núcleos de CPU. Por exemplo, --cpus 0.5 significa que o container pode usar no máximo metade de um núcleo de CPU.
A flag --memory limita a quantidade de memória que o container pode usar. O valor pode ser especificado em bytes, kilobytes (k), megabytes (m) ou gigabytes (g). Por exemplo, --memory 512m limita o container a 512 megabytes de memória.
Neste exemplo, criaremos um container que executa o comando sleep infinity, que mantém o container em execução indefinidamente. Limitaremos seu uso de CPU a 0,5 núcleos e memória a 256 megabytes.
docker run -d --name my-limited-container --cpus 0.5 --memory 256m ubuntu:latest sleep infinity
Vamos detalhar o comando:
docker run: Este comando é usado para criar e iniciar um novo container.
-d: Esta flag executa o container em modo detached (destacado), o que significa que ele é executado em segundo plano.
--name my-limited-container: Isso atribui o nome my-limited-container ao container.
--cpus 0.5: Isso limita o uso de CPU do container a 0,5 núcleos.
--memory 256m: Isso limita o uso de memória do container a 256 megabytes.
ubuntu:latest: Isso especifica a imagem Docker a ser usada (a versão mais recente do Ubuntu).
sleep infinity: Este é o comando que será executado dentro do container. Ele mantém o container em execução.
Após executar o comando, o Docker exibirá o ID do container.
Para verificar se o container está em execução e os limites de recursos foram aplicados, você pode usar o comando docker inspect. Este comando fornece informações detalhadas sobre um container.
docker inspect my-limited-container
A saída de docker inspect é um grande objeto JSON. Você pode procurar os campos CpuShares e Memory dentro da seção HostConfig para ver os limites aplicados. Observe que --cpus 0.5 é traduzido para um valor de CpuShares de 512 (por padrão, 1 CPU tem 1024 shares). O valor de Memory estará em bytes.