Você quer saber o que os aplicativos Docker estão fazendo nos bastidores? Vamos aprender mais sobre a janela secreta, conhecida como logs, em seus contêineres que mostra cada movimento que eles fazem. Os logs são muito úteis para corrigir problemas. Mas antes de começarmos, vamos dar uma olhada rápida no que são Docker e Docker Compose.
O Docker permite empacotar seus aplicativos em pequenos contêineres e executá-los na maioria dos sistemas operacionais sem nenhuma dependência. É como colocar seus aplicativos em caixinhas chamadas Containers, que podem ser executadas da mesma maneira em qualquer lugar. Conhecer contêineres é um pré-requisito importante para aprender sobre o Docker Compose. Então, eu encorajo você primeiro a ler nosso blog em os benefícios da conteinerização.
Docker Compose vem com Docker e simplifica o desenvolvimento de vários aplicativos em contêineres, encadeando seus serviços, redes e armazenamento. Os logs de contêiner do Docker e o log do Docker Compose ajudam os desenvolvedores a ver o que cada contêiner faz.
Então, você está curioso sobre os logs do Docker Compose? Você está no lugar certo. Este blog explicará os fundamentos dos logs do Docker Compose e cobrirá 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 que um desenvolvedor inicia um aplicativo com Docker, mas ignora a configuração dos logs do Docker. A princípio, tudo parece bem. Mas logo os usuários encontram erros e o aplicativo fica lento. Sem os logs do Docker, o desenvolvedor não consegue ver o que deu errado dentro dos contêineres do Docker. Os logs do Docker Compose são como um registro detalhado desses contêineres. Eles registram todos os detalhes do que acontece, o que é importante para encontrar e corrigir problemas posteriormente.
Como desenvolvedor ou administrador de sistema, você deve entender o que acontece dentro e entre aplicativos multicadeia. É aqui que os logs do Docker Compose atuam como uma ferramenta útil. Então, por que esses logs são necessários?
-
Solução de problemas e depuração
Verifique os logs do Docker quando um aplicativo não estiver funcionando corretamente ou encontrar erros. Os logs do Docker são os primeiros recursos que você pode consultar para rastrear o problema. Ao examinar os logs do docker, os desenvolvedores podem identificar a causa raiz e a origem dos problemas, seja um bug no código, uma configuração incorreta ou problemas de recursos.
-
Monitorando a integridade do aplicativo
O monitoramento regular dos logs de aplicativos ajuda a compreender a integridade geral dos serviços. Os registros podem revelar sinais de alerta precoce, como erros repetidos e respostas lentas. Observar esses padrões antecipadamente pode evitar 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 que mostra se a aplicação segue as diretrizes. Esses logs também desempenham um papel essencial no monitoramento de atividades autorizadas ou não autorizadas.
-
Otimização
Os logs são recursos valiosos para otimização de software, fornecendo dados de desempenho. Por exemplo, os desenvolvedores podem identificar consultas lentas, caminhos de código ineficientes ou recursos subutilizados.
Elaborando uma receita Docker: implantando um servidor Web
Nesta seção, veremos como criar uma receita Docker juntos. Primeiro precisamos construir algo para iniciar nossa jornada com os logs do Docker Compose. Vamos implantar um servidor web para essa finalidade. Para criar um Dockerfile, basta executar nano Dockerfile na pasta desejada em seu VPS com o seguinte conteúdo e salve-o:
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:alpino.
- A seguir, limpamos a página de boas-vindas padrão do Nginx.
- Então, nos certificamos de que o servidor web está escutando na porta 80.
- Finalmente, executamos o servidor Nginx com DMC.
Agora que nosso Dockerfile está pronto, passaremos para a próxima etapa, 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 decompô-lo para entender cada parte completamente:
- Estamos usando a versão 3.8.
- Na próxima linha, nomeamos nosso serviço “rede“.
- Em seguida, instruímos o Docker a construir nosso servidor web a partir da pasta atual.
- Vinculamos a porta 8080 em nosso host à porta 80 em nosso contêiner para permitir que nosso servidor web estabeleça uma conexão.
- Finalmente, os mapas de configuração de volumes index.html do disco host para o contêiner. Mais tarde, você pode criar um index.html arquivo com qualquer conteúdo desejado e coloque-o onde o Dockerfile e docker-compose.yml existem arquivos.
Agora é hora de executar nosso contêiner Docker com Docker Compose. Simplesmente, corremos docker-compose up.

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

Como observação lateral, você pode usar docker-compose up -d para executar o contêiner em segundo plano.
Acessando logs com Docker Compose
Agora, nosso servidor web está pronto, instalado e funcionando. Já está gerando logs e armazenando essas informações para uso posterior. Acessar os logs do Docker Compose é essencial para solução de problemas e monitoramento. Mas como podemos ler esses logs? É aqui que registros docker-compose é útil. Certifique-se de estar na pasta onde existe a configuração e execute esse comando.

Às vezes, você pode querer ver a versão ao vivo dos logs à medida que eles são gerados. Basta adicionar -f no final do comando anterior e executar docker-compose logs -f.

Alguns aplicativos baseados em Docker podem não fornecer carimbos de data/hora em seus logs. Portanto, você pode usar docker-compose logs -t para adicionar um tempo registrado para cada linha do log.

Docker Logs também pode exibir as entradas mais recentes. Para conseguir isso, use registros docker-compose –tail 10 para visualizar as últimas 10 entradas de log. O Docker compõe a cauda dos logs e, da mesma forma, a cauda dos logs do docker é particularmente útil quando você deseja verificar rapidamente a atividade recente sem percorrer todo o histórico do log.

O objetivo principal de usar o Docker Compose é criar aplicativos com vários contêineres. Portanto, talvez seja necessário ler logs específicos de um serviço desejado. Para fazer isso, use docker-compose logs -f SERVIÇO, lembrando de substituir SERVIÇO com o nome real do serviço.

Registro do Docker
O ecossistema Docker pode se tornar mais complexo para aplicações convergentes, 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, o Docker usa arquivos JSON para o Logging Driver, mas também oferece suporte a vários outros drivers, cada um com seus prós e contras.
Todos concordam que os logs são cruciais em diversas áreas, incluindo solução de problemas e melhoria do desempenho do sistema. Abaixo, abordaremos dois dos principais aspectos do uso de logs de contêiner:
- Monitoramento: O objetivo principal dos logs é o monitoramento. Eles geralmente revelam a integridade geral de nossos aplicativos em contêineres.
- Solução de problemas: Em caso de problemas, os logs nos ajudam a detectar falhas no aplicativo.
Como os logs do docker e os logs do docker compose são gerados continuamente, eles podem ocupar todo o armazenamento do VPS. Portanto, precisamos de uma estratégia para gerenciar o espaço em disco chamada Política de Rotação de Log. Para criar e usar esta política, retorne ao docker-compose.yml arquivo e abra-o. Em seguida, adicione uma seção de registro 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 tamanho máximo e arquivo máximo de acordo com suas necessidades.
Modelos de entrega de logs do Docker
Os engenheiros podem optar por um modelo de log diferente em ambientes mais avançados do que os drivers JSON padrão, como Syslog, fluentd e outros. No entanto, é importante lembrar que o driver do arquivo JSON é adequado para a maioria dos cenários de registro e pode não haver necessidade de desviar do modo padrão.
Dependendo da arquitetura ou dos requisitos organizacionais do seu aplicativo, você pode ser forçado a utilizar soluções centrais de registro conhecidas como agregadores de log. Esses serviços, incluindo Elasticsearch, Logstash, Kibana, etc., são projetados para receber logs de várias fontes e consolidá-los, armazená-los e analisá-los em um único local central.
Por outro lado, você deve armazenar seus logs usando soluções de armazenamento mais econômicas. Considere o cenário em que seu VPS usa armazenamento caro e de alta velocidade; pode não ser econômico utilizar esses recursos premium para armazenar logs que você só precisará para referência futura.
Vários modelos de registro estão disponíveis, cada um com vantagens e desvantagens. Avaliar cuidadosamente cada modelo e selecionar um com base em suas necessidades específicas é essencial.
Obtenha um VPS Linux econômico ou premium para hospedar seu site ou desktop remoto, pelo preço mais barato do mercado. VPS rodando em Linux KVM para maior eficiência e trabalhando em hardware poderoso com armazenamento SSD NVMe para maior velocidade.
Leia maisConclusão
Compreender os logs do Docker Compose é fundamental. Eles ajudam a gerenciar e depurar bem seus aplicativos Docker. Aprender a acessar e monitorar esses logs melhora a resolução de problemas e aumenta o desempenho e a segurança do seu aplicativo. Seja desenvolvendo ou administrando sistemas, usar logs do Docker Compose é essencial. Eles garantem que o gerenciamento de contêineres seja eficaz.
Perguntas frequentes
Como posso filtrar os logs do Docker Compose por hora?
Docker Compose não oferece um método direto para filtrar logs por horário. No entanto, você pode filtrar logs canalizando-os por meio 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 ou padrão de hora específico que você está procurando.
Como parar contêineres 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 os arquivos de log?
Em vez de configurar a rotação de log em seu arquivo docker-compose.yml, você pode remover manualmente os arquivos de log JSON do Docker de /var/lib/docker/containers/<container_id>/. Antes de fazer isso, você deve identificar o ID do contêiner Docker com docker ps -a.
Você pode acompanhar os logs do Docker?
Sim, você pode. Para isso você deve usar o comando docker logs junto com a opção -f ou –follow. Isso acompanhará os logs do Docker para você.