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
| Coluna | Descrição |
|---|---|
| UID | Usuário do processo |
| PID | ID do processo no host |
| PPID | Processo pai |
| C | Uso de CPU |
| STIME | Hora de início |
| TTY | Terminal |
| TIME | Tempo total de CPU |
| CMD | Comando 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
| Comando | Finalidade |
|---|---|
| docker top | Lista processos dentro do container |
| docker stats | Mostra 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
psdisponível no host - Não substitui ferramentas completas como
top,htopou monitoramento externo
Boas práticas
- Usar para diagnóstico rápido
- Combinar com
docker logspara análise completa - Evitar uso excessivo em ambientes de alta escala
- Utilizar junto com ferramentas de observabilidade para análise contínua