Dozzle¶
O Dozzle fornece uma interface web para visualizar logs dos containers Docker em tempo real.
Ele não armazena os logs por conta própria. O Dozzle apenas consulta os registros mantidos pelo Docker e os apresenta em uma interface mais amigável.
Nesta VPS, ele é uma ferramenta administrativa não essencial e pode permanecer desligado durante o quiet_mode.
Informações desta VPS¶
| Item | Valor |
|---|---|
| Stack | /opt/stacks/infra/compose.yml |
| Serviço Compose | dozzle |
| Container | infra-dozzle-1 |
| Imagem configurada | amir20/dozzle:latest |
| Versão registrada | v8.14.6 |
| Versão mais recente verificada | v10.6.7 |
| Domínio | https://logs.cloud.hometecseg.com |
| Porta interna | 8080 |
| Rede Docker | proxy |
| Volume persistente | Não utiliza |
| Docker Socket | /var/run/docker.sock:ro |
| Healthcheck | Não configurado |
| Operação contínua | Não obrigatória |
Modo econômico
O Dozzle pode aparecer como parado porque é desligado propositalmente pelo script quiet_mode.sh. O estado Exited (0) indica encerramento normal.
Estado atual¶
Ver o estado do serviço¶
Ver somente containers em execução¶
Ver containers ativos ou parados¶
Ver o estado detalhado¶
docker inspect infra-dozzle-1 \
--format 'Status={{.State.Status}} ExitCode={{.State.ExitCode}} FinishedAt={{.State.FinishedAt}} OOMKilled={{.State.OOMKilled}}'
Iniciar e parar¶
Iniciar o Dozzle¶
Caso o container não exista:
Parar o Dozzle¶
Reiniciar o Dozzle¶
Recriar o container¶
Confirmar o estado após iniciar¶
Acesso¶
Endereço:
Testar o domínio¶
Verificar o DNS¶
Ver detalhes da conexão HTTPS¶
Serviço desligado
O domínio ficará indisponível enquanto o Dozzle estiver parado pelo modo econômico.
Logs do próprio Dozzle¶
Ver os últimos 100 registros¶
Acompanhar os logs em tempo real¶
Procurar erros¶
Procurar avisos¶
Ver registros de inicialização¶
docker logs infra-dozzle-1 2>&1 \
| grep -Ei "Dozzle version|Connected to Docker|Accepting connections"
Versão¶
Ver a versão registrada nos logs¶
Mostrar somente o número da versão¶
docker logs infra-dozzle-1 2>&1 \
| grep "Dozzle version" \
| tail -1 \
| grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+'
Ver a imagem configurada¶
Ver a imagem associada ao container¶
Ver o identificador da imagem utilizada¶
Versão mais recente disponível¶
A versão registrada nesta VPS é:
A versão mais recente verificada no repositório oficial ao criar esta documentação é:
Portanto, existe uma atualização principal disponível. A versão 10 inclui recursos novos, como alertas e webhooks, além da visualização tradicional de logs. :contentReference[oaicite:0]{index=0}
Informação temporal
O número da versão mais recente muda com o tempo. Sempre verifique os releases oficiais antes de atualizar.
Verificar atualização disponível¶
Baixar a imagem mais recente¶
Esse comando baixa a imagem, mas não recria o container atual.
Ver o identificador da imagem baixada¶
Ver o identificador usado pelo container¶
Comparar automaticamente¶
CONTAINER_IMAGE="$(docker inspect infra-dozzle-1 --format '{{.Image}}')" &&
LATEST_IMAGE="$(docker image inspect amir20/dozzle:latest --format '{{.Id}}')" &&
if [ "$CONTAINER_IMAGE" = "$LATEST_IMAGE" ]; then
echo "Dozzle já utiliza a imagem mais recente baixada."
else
echo "Existe uma imagem diferente da usada pelo container."
fi
Comparação por imagem
Esse teste compara identificadores de imagem. Ele não interpreta semanticamente os números de versão.
Atualização manual¶
A documentação oficial recomenda atualizar baixando a nova imagem e recriando o serviço. :contentReference[oaicite:1]{index=1}
Criar backup do Compose¶
Criar backup do arquivo de ambiente¶
Validar o Compose¶
Baixar a nova imagem¶
Recriar somente o Dozzle¶
Verificar o estado¶
Verificar os logs¶
Confirmar a versão¶
Testar o domínio¶
Atualização pelo script¶
Existe um script dedicado:
Ele será revisado e documentado posteriormente na página de scripts.
Visualizar o script¶
Verificar permissões¶
Revisão obrigatória
O script deve ser analisado antes do uso para confirmar se valida o Compose, preserva o estado do quiet_mode, confere a versão e oferece alguma forma de rollback.
Docker Socket¶
O Dozzle utiliza:
A montagem está configurada como somente leitura:
Confirmar a montagem¶
docker inspect infra-dozzle-1 \
--format '{{range .Mounts}}{{println .Type "|" .Source "|" .Destination "|" .RW}}{{end}}'
Verificar as permissões do socket no host¶
Acesso ao Docker
Mesmo montado como somente leitura, o Docker Socket expõe informações sensíveis sobre containers, imagens, redes e variáveis. O painel deve permanecer protegido.
Porta interna¶
O Dozzle escuta por padrão na porta:
A documentação oficial também usa a porta 8080 nos exemplos de instalação. :contentReference[oaicite:2]{index=2}
Confirmar a porta exposta¶
Verificar a porta registrada nos logs¶
Healthcheck¶
Atualmente não há healthcheck configurado:
O Dozzle possui um comando próprio de verificação:
Esse teste consulta o endpoint interno e verifica se o Dozzle consegue alcançar pelo menos um Docker local ou agente remoto. :contentReference[oaicite:3]{index=3}
Testar manualmente dentro do container¶
Com o Dozzle ativo:
Exemplo de healthcheck para o Compose¶
healthcheck:
test: ["CMD", "/dozzle", "healthcheck"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
Alteração futura
O healthcheck acima é uma sugestão. Ele ainda não está configurado no Compose atual e deve ser testado antes de ser incorporado.
Traefik¶
Ver as labels¶
Verificar a rede proxy¶
Confirmar as redes do container¶
Ver logs do Traefik¶
Troubleshooting¶
Dozzle aparece como parado¶
Verificar:
Se foi parado pelo modo econômico:
Caso o container não exista:
Dozzle inicia e encerra¶
Verificar:
docker inspect infra-dozzle-1 \
--format 'ExitCode={{.State.ExitCode}} Error={{printf "%q" .State.Error}} OOMKilled={{.State.OOMKilled}}'
Não consegue conectar ao Docker¶
Verificar o socket:
Verificar a montagem:
docker inspect infra-dozzle-1 \
--format '{{range .Mounts}}{{println .Source "->" .Destination}}{{end}}'
Verificar os logs:
Erro 404¶
Erro 502 ou Gateway Timeout¶
A porta interna esperada é:
Logs não aparecem¶
Verificar se o container desejado possui logs:
Verificar o driver de logs:
Verificar se o Dozzle está conectado ao Docker:
Consumo elevado de CPU ou memória¶
docker inspect infra-dozzle-1 \
--format 'Memory={{.HostConfig.Memory}} NanoCPUs={{.HostConfig.NanoCpus}}'
Boas práticas¶
- Manter o Dozzle desligado quando não estiver em uso.
- Fazer backup do Compose antes de atualizações.
- Não publicar diretamente a porta
8080. - Utilizar o Traefik para acesso externo.
- Manter o Docker Socket como somente leitura.
- Proteger o domínio contra acesso não autorizado.
- Verificar versão e logs após atualizações.
- Considerar configurar um healthcheck.
- Revisar
update_dozzle.shantes de utilizá-lo.