Quer saber o que os aplicativos Docker estão fazendo nos bastidores? Vamos aprender mais sobre a janela secreta, conhecida como logs, em seus containers que mostram cada movimento que fazem. Os logs são muito úteis para corrigir problemas. Mas antes de começar, vamos dar uma rápida olhada no que são Docker e Docker Compose.
Docker permite que você empacote suas aplicações em pequenos containers e as execute na maioria dos sistemas operacionais sem dependências. É como colocar seus apps em pequenas caixas chamadas Containers, que podem funcionar da mesma forma em qualquer lugar. Compreender containers é um pré-requisito importante para aprender sobre Docker Compose. Por isso, o encorajamos a primeiro ler nosso blog sobre os benefícios da containerização.
Docker Compose vem com Docker e simplifica o desenvolvimento de múltiplas aplicações containerizadas ao conectar seus serviços, redes e armazenamento. Os logs de container Docker e o logging do Docker Compose ajudam developers a ver o que cada container faz.
Então, você tem curiosidade sobre logs do Docker Compose? Você está no lugar certo. Este guia explica o básico de logs do Docker Compose e cobre detalhes mais avançados. Aprenda como aproveitar ao máximo o Docker Compose para seus projetos.
A Importância dos Logs do Docker Compose
Imagine um developer lançando uma aplicação com Docker mas pulando a configuração de logs do Docker. À primeira vista, tudo parece ok. Mas logo, usuários encontram erros e a aplicação desacelera. Sem logs do Docker, o developer não consegue ver o que deu errado dentro dos containers Docker. Logs do Docker Compose são como um registro detalhado desses containers. Eles registram cada detalhe do que acontece, o que é importante para encontrar e corrigir problemas depois.
Como Developer ou System Admin, você precisa entender o que acontece dentro e entre aplicações multi-container. É aqui que logs do Docker Compose atuam como uma ferramenta prática. Então, por que esses logs são necessários?
-
Solução de Problemas e Depuração
Verifique os logs do docker quando uma aplicação não está funcionando corretamente ou encontra erros. Os logs do Docker são os primeiros recursos que você pode consultar para rastrear o problema. Ao examinar os logs do docker, developers conseguem identificar a causa raiz e a origem dos problemas, sejam eles um bug no código, uma configuração errada, ou problemas de recursos.
-
Monitoramento da Saúde da Aplicação
Monitorar logs de aplicação regularmente ajuda a entender a saúde geral dos serviços. Os logs podem revelar sinais de alerta, como erros repetidos e respostas lentas. Observar esses padrões cedo pode prevenir possíveis problemas no futuro.
-
Auditoria e Conformidade
Para aplicações que precisam seguir padrões específicos, os logs do docker são a primeira evidência mostrando se a aplicação adere aos requisitos. Esses logs também têm um papel essencial no monitoramento de atividades autorizadas ou não autorizadas.
-
Otimização
Logs são recursos valiosos para otimização de software ao fornecer dados de desempenho. Por exemplo, developers conseguem identificar consultas lentas, caminhos de código ineficientes, ou recursos subutilizados.
Criando uma Receita Docker: Implantando um Servidor Web
Nesta seção, vamos criar uma receita Docker juntos. Primeiro precisamos construir algo para começar nossa jornada com logs do Docker Compose. Vamos usar um servidor web para isso. Para criar um Dockerfile, simplesmente execute nano Dockerfile na pasta desejada do seu computador com o seguinte conteúdo e depois salve:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Então, o que cada linha deste código faz?
- Começamos com uma base leve, nginx:alpine.
- Em seguida, removemos a página padrão de boas-vindas do Nginx.
- Depois, nos certificamos de que o servidor web está escutando na porta 80.
- Finalmente, iniciamos o servidor Nginx com CMD.
Agora nosso Dockerfile está pronto, vamos para o próximo passo, que é criar o arquivo Docker Compose. Aqui está a estrutura do docker-compose.yml arquivo:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.html:/usr/share/nginx/html/index.html
Vamos decompor para entender cada parte completamente:
- Estamos usando a versão 3.8.
- Na próxima linha, nomeamos nosso serviço comoweb“.
- Então, instruímos o Docker a construir nosso servidor web a partir da pasta atual.
- Vinculamos a porta 8080 do seu host à porta 80 no seu container para permitir que o servidor web estabeleça uma conexão.
- Finalmente, a configuração de volumes mapeia index.html do disco do host para o container. Depois, você pode criar um index.html arquivo com qualquer conteúdo que quiser e colocá-lo onde o Dockerfile e docker-compose.yml os arquivos existem.
Agora é hora de executar nosso container Docker com Docker Compose. Simplesmente, executamos docker-compose up.

Depois de executar o docker-compose up comando, Docker baixará as imagens necessárias da internet e as configurará conforme instruído em nossos arquivos de configuração.
Para verificar se o servidor web está ativo e funcionando, abra seu navegador, digite o endereço IP VPS e solicite acesso à porta 8080.

Como nota adicional, você pode usar docker-compose up -d para executar o container em background.
Acessando Logs com Docker Compose
Agora o servidor web está pronto e funcionando. Já está gerando logs e armazenando essas informações para uso posterior. Acessar os logs do docker compose é essencial para diagnóstico e monitoramento. Mas como ler esses logs? É aqui que registros do docker-compose entra em ação. Certifique-se de estar na pasta onde a configuração existe e execute o comando.

Às vezes, você pode querer ver a versão ao vivo dos logs conforme são gerados. Simplesmente adicione -f ao final do comando anterior e execute docker-compose logs -f.

Algumas aplicações baseadas em Docker podem não fornecer timestamps em seus logs. Portanto, você pode usar docker-compose logs -t para adicionar um timestamp para cada linha do log.

Logs do Docker também podem exibir as entradas mais recentes. Para fazer isso, use docker-compose logs --tail 10 para visualizar as 10 entradas de log mais recentes. Docker compose logs tail, e similarmente docker logs tail é particularmente útil quando você quer verificar rapidamente atividades recentes sem percorrer todo o histórico de logs.

O propósito principal do Docker Compose é criar aplicações com múltiplos containers. Portanto, você pode precisar ler logs específicos de um serviço desejado. Para fazer isso, use docker-compose logs -f SERVICEI notice the text to translate is incomplete: ", remembering to replace" Could you please provide the full English text you'd like me to translate to Portuguese? SERVICE com o nome do seu serviço real.

Registro de Docker
O ecossistema Docker pode se tornar mais complexo para aplicações convergidas, especialmente em ambientes grandes. Como já sabemos, cada container gera logs. Portanto, um mecanismo conhecido como Logging Driver é responsável por receber, entregar e armazenar logs. Por padrão, Docker usa arquivos JSON para o Logging Driver, mas também suporta vários outros drivers, cada um com suas vantagens e desvantagens.
Todos concordam que logs são cruciais em várias áreas, incluindo diagnóstico e melhoria do desempenho do sistema. Abaixo, abordaremos dois dos aspectos principais do uso de logs de containers:
- Monitoramento: Os registros têm como propósito principal o monitoramento. Geralmente revelam a saúde geral de nossas aplicações containerizadas.
- Resolução de problemas: Em caso de problemas, os registros nos ajudam a detectar falhas na aplicação.
Como os registros do Docker e do Docker Compose são continuamente gerados, podem ocupar todo o armazenamento VPS. Por isso, precisamos de uma estratégia para gerenciar o espaço em disco chamada Política de Rotação de Registros. Para criar e usar essa política, volte ao docker-compose.yml arquivo e abra-o. Depois, adicione uma seção de logging com a configuração abaixo:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.htm:/usr/share/nginx/html/index.htm logging: driver: json-file options: max-size: "200k" max-file: "10"
Você pode ajustar constantemente max-size e max-file conforme suas necessidades.
Modelos de Entrega de Logs Docker
Em ambientes mais avançados, os engenheiros podem optar por um modelo de logging diferente dos drivers JSON padrão, como Syslog, fluentd e outros. No entanto, é importante lembrar que o driver JSON é adequado para a maioria dos cenários de logging, e pode não haver necessidade de sair do modo padrão.
Dependendo da arquitetura da sua aplicação ou dos requisitos organizacionais, você pode precisar usar soluções centralizadas de logging, conhecidas como Log Aggregators. Esses serviços, incluindo Elasticsearch, Logstash, Kibana, etc., são projetados para receber registros de várias fontes e consolidá-los, armazená-los e analisá-los em um local central único.
Por outro lado, você deve armazenar seus registros usando soluções de armazenamento mais econômicas. Considere o cenário em que seu VPS usa armazenamento de alta velocidade e caro; pode não ser econômico utilizar recursos premium para armazenar registros que você pode precisar apenas para referência futura.
Muitos modelos de logging estão disponíveis, cada um com suas vantagens e desvantagens. É essencial avaliar cada modelo com cuidado e selecionar um com base nas suas necessidades específicas.
Pegue um Linux VPS econômico ou premium para hospedar seu site ou desktop remoto, com o preço mais barato disponível. VPS Executando em Linux KVM para maior eficiência e funcionando em hardware poderoso com armazenamento NVMe SSD para maior velocidade.
Ler maisConclusão
Entender os registros do Docker Compose é fundamental. Eles ajudam a gerenciar e depurar suas aplicações Docker bem. Aprender a acessar e monitorar esses registros melhora a resolução de problemas e aumenta o desempenho e a segurança da sua aplicação. Se você está desenvolvendo ou administrando sistemas, usar registros do Docker Compose é essencial. Eles garantem que seu gerenciamento de containers seja eficaz.
Perguntas Frequentes
Como posso filtrar logs do Docker Compose por hora?
O Docker Compose não oferece um método direto para filtrar registros por tempo. No entanto, você pode filtrar registros canalizando-os através do grep para correspondência de padrões. Por exemplo, você pode usar: docker-compose logs | grep "2023-04-06", substituindo "2023-04-06" pela data específica ou padrão de hora que você está procurando.
Como parar containers iniciados com Docker Compose?
Navegue até o diretório que contém o arquivo docker-compose.yml e execute o comando docker-compose down.
Como remover manualmente arquivos de log?
Em vez de configurar a rotação de registros no seu arquivo docker-compose.yml, você pode remover manualmente os arquivos de registros Docker JSON de /var/lib/docker/containers/<container_id>/. Antes disso, você deve identificar o ID do container Docker com docker ps -a.
Posso fazer tail dos logs Docker?
Sim, você pode. Para isso, você deve usar o comando docker logs junto com a opção -f ou --follow. Isso rastreará os registros Docker para você.