Como visualizar os logs num contêiner em execução?
sobes.tech IA
Resposta da IA
# Ver todos os logs do contêiner
docker logs <container_id_or_name>
# Ver as últimas 100 linhas de logs
docker logs --tail 100 <container_id_or_name>
# Ver os logs desde o início do contêiner
docker logs --follow <container_id_or_name>
# Ver logs desde um momento específico
# Formato de hora: RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>
# Ver logs durante um período de tempo específico
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>
# Guardar logs num ficheiro
docker logs <container_id_or_name> > container_logs.txt
O registo em containers baseia-se na redireção dos fluxos padrão de saída (stdout) e erro (stderr) da aplicação dentro do container. O Docker recolhe esses fluxos e disponibiliza-os através do comando docker logs.
Abordagens alternativas:
-
Utilização de controladores de registo Docker: Configuração do daemon Docker para enviar logs para sistemas de registo centralizados (por exemplo, ELK Stack, Splunk, CloudWatch Logs) usando vários controladores de registo. Este é o método preferido para ambientes de produção.
-
Mapeamento de volumes: Montar um volume do sistema host dentro do container, onde a aplicação escreve os logs.
# exemplo de docker-compose.yml services: my_app: image: my_app_image volumes: - /var/log/myapp:/app/logs # Mapeamento de volumeDepois disso, os logs estão disponíveis na máquina host na localização especificada.
-
Instalação de agentes de registo: Desdobramento de um agente de registo (por exemplo, Filebeat, Fluentd) no container ou como sidecar, que recolhe os logs e os envia para um sistema centralizado.