Conteúdo
Tutorial de docker logs: veja os logs do contêiner com -f, --tail e --since
docker logs exibe a saída do processo principal do contêiner. Para conhecer o processo de depuração, consulte Ver logs e depurar.
Sintaxe
docker logs [OPÇÕES] CONTÊINER
Parâmetros
| Parâmetro | Descrição |
|---|---|
-f, --follow | Continua exibindo novos logs. Pressione Ctrl+C para parar |
-n, --tail NÚMERO | Exibe apenas as últimas n linhas (o padrão é all) |
-t, --timestamps | Adiciona um registro de data e hora no início de cada linha |
--since TEMPO | Exibe apenas os logs gerados depois de um determinado momento, por exemplo 10m, 2h, 2026-10-14T08:00:00 |
--until TEMPO | Exibe apenas os logs gerados antes de um determinado momento |
--details | Exibe informações adicionais, como os rótulos adicionados com --log-opt na inicialização |
Exemplos
O contêiner de exemplo grava line N em stdout e error N em stderr a cada segundo, por 5 vezes:
docker run -d --name logger alpine:3.23 sh -c 'for i in 1 2 3 4 5; do echo line $i; echo error $i >&2; sleep 1; done; sleep 600'
Tudo, últimas linhas e registro de data e hora
$ docker logs logger
line 1
error 1
line 2
error 2
line 3
error 3
error 4
line 4
error 5
line 5
$ docker logs --tail 2 logger
error 5
line 5
$ docker logs -t --tail 2 logger
2026-10-13T05:28:48.681587356Z error 5
2026-10-13T05:28:48.681659184Z line 5
- Sem parâmetros, exibe tudo. As saídas de stdout e stderr aparecem intercaladas, em ordem cronológica.
--tail 2exibe apenas as 2 últimas linhas. Use essa opção quando houver muitos logs.-tadiciona o horário registrado pelo Docker (UTC), com precisão de nanossegundos.
Período recente
$ docker logs --since 3s logger
error 4
line 4
error 5
line 5
--since 3s exibe apenas os logs dos últimos 3 segundos. É mais preciso do que --tail para investigar “o que acabou de acontecer”.
stdout e stderr
$ docker logs logger 2>/dev/null
line 1
line 2
line 3
line 4
line 5
$ docker logs logger 2>&1 | grep error
error 1
error 2
error 3
error 4
error 5
docker logsenvia stdout e stderr do contêiner separadamente para stdout e stderr do seu terminal.2>/dev/nulldescarta stderr, deixando apenas as linhasline.- Para pesquisar mensagens de erro com
grep, primeiro combine stderr com stdout usando2>&1. Caso contrário, o pipe recebe apenas stdout e não encontra nada.
Acompanhar continuamente
$ timeout 3 docker logs -f --tail 1 logger
line 5
-f aguarda continuamente novos logs. Com --tail 1, exibe primeiro a última linha e depois começa a acompanhar. Neste exemplo, timeout 3 encerra o comando automaticamente após 3 segundos; no uso normal, pressione Ctrl+C para parar. O comando equivalente no Compose é docker compose logs -f nome-do-serviço.
Capítulos relacionados
- Ver logs e depurar
- Comando docker compose:
docker compose logs - Liberar espaço em disco: limites de tamanho dos logs
Exercícios
Exercício: exiba os logs do contêiner logger dos últimos 1 minuto que contenham error e adicione o registro de data e hora.
Resposta
docker logs -t --since 1m logger 2>&1 | grep error
Perguntas frequentes
docker logs não exibe nada?
docker logs coleta apenas o conteúdo que o processo principal do contêiner grava na saída padrão (stdout) e no erro padrão (stderr). Se o programa grava os logs em um arquivo (por exemplo, /var/log/app.log), use docker exec para ler esse arquivo ou configure o programa para gravar em stdout.
Os logs do programa Python demoram para aparecer?
Sem um terminal, o Python armazena a saída em buffer. Defina a variável de ambiente PYTHONUNBUFFERED=1 para exibir a saída em tempo real. Consulte [Aplicações Python](/pt/docker/python/).
docker logs | grep não encontra uma mensagem de erro que existe?
As mensagens de erro geralmente são gravadas em stderr, e o pipe | transmite apenas stdout. Use docker logs contêiner 2>&1 | grep palavra-chave.
O que fazer quando os logs ocupam muito espaço em disco?
Defina limites de tamanho para os logs (--log-opt max-size=10m --log-opt max-file=3). Veja os resultados práticos em [Liberar espaço em disco](/pt/docker/cleanup/).
Atualizado 14 de outubro de 2026