Guia de tecnologias

Monitoramento de CPU e memória no Docker Desktop

8 min read DevOps Atualizado 22 Oct 2025
Monitoramento de CPU e memória no Docker Desktop
Monitoramento de CPU e memória no Docker Desktop

Monitor Resources Using Docker Desktop

Entender o uso de CPU e memória no Docker Desktop melhora a performance dos seus contêineres e a responsividade do sistema host. O Docker Desktop oferece várias formas de rastrear e controlar esses recursos — desde interfaces gráficas simples até comandos de terminal — e este artigo mostra como fazer isso de forma eficaz.

Por que é necessário gerenciar recursos no Docker Desktop

Docker Desktop executa contêineres dentro de uma camada virtualizada. No Windows isso pode ser Hyper-V ou WSL2; no macOS, HyperKit. Essa máquina virtual torna o comportamento dos contêineres consistente entre sistemas, mas também adiciona overhead. Ou seja, tanto as cargas nos contêineres quanto os próprios processos em segundo plano do Docker podem consumir muitos recursos do sistema.

Para manter o computador responsivo, o Docker Desktop permite controlar CPU, memória e disco. Você pode limitar o número de núcleos de CPU disponíveis, definir um teto de memória para evitar que contêineres consumam toda a RAM e limitar armazenamento ou executar limpeza para remover imagens, contêineres e volumes não usados.

Saber como o Docker Desktop gerencia CPU, memória e disco ajuda a identificar a origem do uso excessivo. Às vezes o consumo intenso está ligado a um contêiner específico; outras vezes vem dos processos internos do Docker. Por isso, monitorar é essencial: você consegue rastrear atividade em tempo real, identificar consumidores principais e manter o sistema estável.

Importante: as opções exatas do UI variam por versão do Docker Desktop e por sistema operacional. Sempre confirme na sua versão atual antes de aplicar mudanças em produção.

Monitorar CPU e memória usando o Painel do Docker

O Painel (Dashboard) do Docker Desktop oferece uma interface gráfica integrada e de fácil uso para monitorar seus contêineres. É a maneira mais simples de ver uso em tempo real sem recorrer ao terminal.

Para acompanhar o desempenho dos contêineres:

  • Abra o Docker Desktop.
  • Navegue até a seção Containers.
  • Observe os contêineres em execução com uso de CPU e memória em tempo real.

Monitor Resources Docker Desktop UI

Clicando em qualquer contêiner, você pode ver logs, variáveis de ambiente e processos em execução, incluindo detalhes em tempo real de CPU, memória, disco e rede. Isso facilita detectar problemas de performance sem comandos complexos.

Monitor Resource Usage Of Specific Container

Aprimorar monitoramento com a extensão Resource Usage

A extensão Resource Usage adiciona um painel dedicado com métricas mais detalhadas. Enquanto o Dashboard já mostra uso básico, a extensão fornece gráficos, filtros e visão consolidada de I/O de disco e atividade de rede.

Para instalar:

  1. Vá para Extensions na barra lateral do Docker Desktop.
  2. Busque por Resource Usage na caixa de pesquisa.
  3. Clique em Install.

Install Resource Usage Extension

Após instalar, abra a extensão pela barra lateral para ver um resumo claro do uso de CPU e memória por contêiner, além de I/O de disco e atividade de rede. Você pode filtrar e ordenar contêineres para identificar facilmente os maiores consumidores.

Access Resource Usage Extension

Navegue até a Chart View para visualizar uso em gráficos, o que ajuda a perceber picos ou padrões incomuns.

View Resource Usage Graphs

A extensão facilita o monitoramento quando há múltiplos contêineres e ajuda a priorizar ações corretivas.

Rastrear uso em tempo real com docker stats

O comando docker stats permite acompanhar CPU, memória, disco e rede em tempo real pelo terminal. No Docker Desktop você pode abrir um terminal integrado e rodar:

docker stats

Ao executar, ele transmite métricas ao vivo (CPU, memória, etc.). Para interromper o streaming e voltar ao prompt, pressione Ctrl + C.

Monitor Resources With Docker Stats

Também é possível monitorar um contêiner específico passando nome ou ID:

docker stats NOME_OU_ID

Exemplo para um contêiner chamado openwebui:

docker stats openwebui

Monitor Specific Container With Docker Stats

Opções úteis:

  • –no-stream: obtém uma única amostra e sai.
  • –format: customiza a saída (útil para scripts e alertas).

docker stats é ideal para integrações simples e inspeção rápida quando preferir linha de comando.

Como ajustar limites de CPU, memória e disco

Ajustar limites evita que contêineres dominem o host. Alterações típicas são feitas pelo painel de configurações do Docker Desktop:

  • Abra Docker Desktop.
  • Acesse Settings (ou Preferences no macOS) > Resources.
  • Ajuste CPU, Memory (memória), Swap e Disk image size.
  • Salve e reinicie o Docker se solicitado.

Dicas práticas:

  • Comece com limites conservadores e aumente conforme necessário.
  • Para ambientes de desenvolvimento, reservar 2–4 núcleos e 4–8 GB de RAM é comum, dependendo do projeto.
  • Em WSL2, ajuste tanto as configurações do Docker quanto, se necessário, as opções do WSL (.wslconfig) para limites de recursos.

Importante: reduzir CPU/memória demais pode causar falhas por falta de recursos. Teste as aplicações após qualquer ajuste.

Metodologia rápida para investigar picos de consumo

Mini-metodologia (passos) para diagnosticar problemas de performance:

  1. Reproduzir o problema: confirme quando ocorre (hora, carga de trabalho).
  2. Coletar métricas: use Docker Dashboard, Resource Usage e docker stats.
  3. Isolar contêineres: pare contêineres não essenciais e observe impacto.
  4. Verificar logs e processos internos do contêiner (top ou ps dentro do contêiner).
  5. Ajustar limites temporariamente e executar testes de carga.
  6. Persistir mudanças que resolveram o problema e documentar a causa raiz.

KPI qualitativos: responsividade do host, latência das aplicações e estabilidade do serviço.

Fluxo de decisão para picos de CPU/memória

Use o diagrama abaixo para guiar ações rápidas quando detectar um pico.

flowchart TD
  A[Detecta pico de CPU/memória] --> B{O pico é isolado a um contêiner?}
  B -- Sim --> C[Inspecionar logs e processos do contêiner]
  B -- Não --> D[Verificar processos do Docker Desktop e VM]
  C --> E{Processo do contêiner é culpado?}
  E -- Sim --> F[Aumentar limite temporário ou otimizar aplicação]
  E -- Não --> G[Buscar rede, I/O ou dependências externas]
  D --> H{Consumo pelos processos do Docker?}
  H -- Sim --> I[Reiniciar Docker Desktop e investigar extensões]
  H -- Não --> J[Revisar configuração da VM 'WSL2/Hyper-V/HyperKit']
  F --> K[Executar testes e monitorar]
  G --> K
  I --> K
  J --> K
  K --> L[Documentar e aplicar correção permanente]

Checklists por função

Checklist para Desenvolvedores:

  • Verificar uso de memória no desenvolvimento local.
  • Limitar cache ou workers em configurações de desenvolvimento.
  • Testar com limites menores de CPU/memória.

Checklist para QA:

  • Executar testes de carga com limites definidos.
  • Validar comportamento sob limitação de memória (OOM) e CPU.
  • Gerar relatórios de consumo e anexar aos tickets.

Checklist para SRE/DevOps:

  • Monitorar métricas históricas e configurar alertas.
  • Implementar políticas de limpeza de imagens/volumes.
  • Automatizar escalonamento e aplicar limites por ambiente.

Casos de teste e critérios de aceitação

Casos de teste básicos:

  • CT1: Contêiner sob carga moderada não excede 80% do limite de CPU durante 10 minutos.
  • CT2: Contêiner com leak de memória dispara OOM dentro de limites previsíveis e é reiniciado conforme política.
  • CT3: Após reduzir limites de memória, aplicação mantém funcionalidade mínima.

Critérios de aceitação:

  • Métricas observáveis (via docker stats ou extensão) devem ficar dentro dos limites definidos.
  • Logs não devem mostrar erros críticos ligados à falta de recursos após ajuste.
  • Ações corretivas documentadas e testadas em ambiente de staging.

Quando as ferramentas internas falham — alternativas

Se o painel, a extensão ou docker stats não forem suficientes, considere soluções externas:

  • Portainer: GUI avançada para gerenciar e monitorar contêineres.
  • Prometheus + Grafana: coleta, armazenamento e visualização de métricas históricas com alertas.
  • cAdvisor: coleta métricas de contêiner com foco em uso de recursos.

Essas ferramentas permitem retenção de métricas por longos períodos e integração com sistemas de alerta corporativos.

Glossário rápido

  • Contêiner: unidade leve que empacota aplicação e dependências.
  • OOM (Out Of Memory): situação onde um processo é terminado por falta de memória.
  • I/O: operações de entrada/saída de disco.
  • VM: máquina virtual usada pelo Docker Desktop para rodar contêineres.

Notas de segurança e privacidade

  • Métricas de uso em si não contêm dados pessoais, mas logs podem conter informações sensíveis. Trate logs com as políticas de retenção e anonimização da sua organização.

Resumo

Monitorar CPU e memória no Docker Desktop é uma prática essencial para garantir aplicações estáveis e um host responsivo. Use o Dashboard para inspeções rápidas, a extensão Resource Usage para análises mais ricas e docker stats para integrações e automação. Ajuste limites com cuidado, siga a metodologia de investigação, e tenha alternativas externas (Prometheus/Grafana, Portainer) se precisar de armazenamento histórico e alertas avançados.

Importante: após qualquer mudança nos limites, execute testes de carga e valide que os serviços continuam operando dentro das expectativas.

FAQ

  • Como vejo métricas históricas no Docker Desktop?

    • O Docker Desktop não armazena métricas históricas por longos períodos; use Prometheus+Grafana ou outra solução de monitoramento para retenção.
  • O docker stats mostra uso de disco?

    • docker stats mostra CPU, memória e rede; para I/O de disco você pode precisar de ferramentas adicionais ou usar a extensão Resource Usage.
  • Limitar CPU pode aumentar latência?

    • Sim, limitar CPU reduz o throughput e pode aumentar latência. Teste antes de aplicar limites em produção.
Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE