- Ao operar serviços em um servidor Linux com aplicações implantadas via Docker, pode aparecer uma mensagem de falta de espaço em disco
- Mesmo que os dados e logs realmente gerados e armazenados pela aplicação não sejam muitos, a capacidade total de armazenamento do sistema pode ficar cheia
- Ao usar Docker, uma das causas da falta de espaço de armazenamento são os 'logs de contêiner do Docker'
- Drivers de logging do Docker e localização dos logs
- Driver de logging: o Docker inclui um mecanismo de logging que ajuda a obter informações de contêineres e serviços em execução; isso é o driver de logging
- Comando
docker logs: mostra as informações registradas por um contêiner em execução
- Comando
docker service logs: mostra as informações registradas por todos os contêineres que participam do serviço
- O Docker usa o driver de logging
json-file, que captura a saída padrão (stdout) ou o erro padrão (stderr) de todos os logs dos contêineres e os grava em um arquivo no formato JSON
- Ao executar um contêiner Docker com os comandos
docker run ou docker-compose up, é criado o arquivo /var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log, onde os logs são registrados
- O driver de logging
json-file não faz rotação de logs
- Se o contêiner gerar uma grande quantidade de saída, o arquivo de log salvo por esse driver pode consumir bastante espaço em disco, o que pode levar ao esgotamento do armazenamento
- Reduzindo o tamanho dos logs de contêiner do Docker
- Ao executar os comandos
docker rm ou docker-compose down, o contêiner Docker é removido, e o diretório correspondente a [Container-ID] em /var/lib/docker/containers também é apagado
- Com isso, o arquivo
[Container-ID]-json.log, que ocupava muito espaço em disco, também é removido, liberando espaço no disco do sistema
- Ao executar o comando
truncate -s 0 <json-log-file>, é possível zerar o tamanho do arquivo de log
- Configurando a rotação de logs
- É possível ativar a rotação de logs definindo o tamanho máximo do arquivo (
max-size) e a quantidade máxima de arquivos (max-file)
- Quando o tamanho do arquivo atinge o valor máximo definido, ele é substituído por um novo arquivo, e os arquivos antigos passam a ser criados como
...-json.log.1, ...-json.log.2 até o limite configurado
- Ao ultrapassar esse limite, o arquivo mais antigo é removido, evitando que o tamanho dos arquivos de log do contêiner Docker cresça indefinidamente
Ainda não há comentários.