Skip to main content

Docker top | Docker

  • Docker top | Docker

O comando docker top permite visualizar os processos em execução dentro de um container. Ele funciona de forma semelhante ao comando ps do Linux, exibindo informações como PID, usuário, uso de CPU, memória e o comando executado.


O que é o docker top

O docker top executa internamente uma consulta de processos no namespace do container e retorna os dados no formato do ps do host.

Ele é útil para:

  • Inspecionar processos ativos
  • Diagnosticar problemas de performance
  • Identificar processos órfãos
  • Verificar se a aplicação está realmente rodando

Sintaxe

docker top <container> [ps options]

Exemplo simples:

docker top meu_container

Exemplo prático

Executando:

docker top nginx_container

Saída típica:

UID     PID     PPID    C       STIME   TTY     TIME    CMD
root 12345 12300 0 10:00 ? 00:00 nginx: master process nginx -g daemon off;
101 12346 12345 0 10:00 ? 00:00 nginx: worker process

Colunas comuns

ColunaDescrição
UIDUsuário do processo
PIDID do processo no host
PPIDProcesso pai
CUso de CPU
STIMEHora de início
TTYTerminal
TIMETempo total de CPU
CMDComando executado

Usando opções do ps

É possível passar argumentos para customizar a saída:

docker top meu_container aux

Ou:

docker top meu_container -eo pid,ppid,cmd,%mem,%cpu

Isso permite visualizar métricas específicas como uso de CPU e memória.


Diferença entre docker top e docker stats

ComandoFinalidade
docker topLista processos dentro do container
docker statsMostra consumo agregado de CPU/memória do container

docker top é granular (processo por processo). docker stats é agregado (container inteiro).


Caso prático: Debug de aplicação travada

Cenário

Um container está rodando, mas a aplicação não responde.

Passos:

docker ps
docker top app_container

Se aparecer apenas um processo zombie ou nenhum worker ativo, isso indica falha na aplicação.


Verificando PID no host

O PID exibido pelo docker top é o PID do host.

Para confirmar:

ps -ef | grep <PID>

Isso permite investigar o processo diretamente no host.


Integração com docker inspect

Para entender o processo principal do container:

docker inspect --format '{{.State.Pid}}' meu_container

Depois:

nsenter -t <PID> -p -m ps aux

Isso permite inspecionar o namespace do container manualmente.


Limitações

  • Não funciona em containers pausados
  • Depende do ps disponível no host
  • Não substitui ferramentas completas como top, htop ou monitoramento externo

Boas práticas

  • Usar para diagnóstico rápido
  • Combinar com docker logs para análise completa
  • Evitar uso excessivo em ambientes de alta escala
  • Utilizar junto com ferramentas de observabilidade para análise contínua