/
Docker, limitar logs para que no se inunde el disco
Search
Try Notion
Docker, limitar logs para que no se inunde el disco
Fecha publicación
2022/04/01
#
34
Dificultad
Básico
3 more properties
Descripción
Gestionar los logs desde los servicios que tenemos corriendo dentro de un contenedor no es una buena idea. Lo ideal es lanzarlos dentro de la salida estándar y la salida de errores del contenedor. Dejando de la mano del contenedor la gestión de los logs.
Docker tiene una larga lista de drivers, para gestionar los logs. Para nuestro gateway de IoT lo que acostumbramos a usar cuando no hay una gestión centralizada de los mismos son ficheros de texto en el host.
Así pues, le diremos a docker que use el driver local. Es una buena idea configurar este driver para que haga la rotación de logs de forma automática y además limite la medida de los mismos a la medida que nos interese.
Otra idea interesante sería usar syslog o journalctl. Usando estos servicios genéricos de Linux para su gestión.
CLI
Como pasamos los parámetros vía linea de comandos:
docker run --log-driver local --log-opt max-size=10m --log-opt max-file=5 my-app:latest
Copy
Bash
docker-compose.yml
Usando fichero de configuración del contenedor:
services:
app:
image: IMAGE_NAME
...
logging:
driver: "local"
options:
max-file: "5" # number of files or file count
max-size: "10m" # file size
compress: true
/etc/docker/daemon.json
Configuración de docker para todos los contenedores:
{
live-restore: true,
storage-driver: "local",
log-opts: {
max-size: "10m",
max-file: 5,
compress: true
}
}
view raw daemon.json hosted with ❤ by GitHub
Reiniciar servicio docker después de modificar el fichero de configuración:
systemctl restart docker
Copy
Bash