logging - monitorear - Los registros del contenedor Docker ocupan todo mi espacio en disco
listar contenedores docker (4)
Estoy ejecutando un contenedor en una VM. Mi contenedor está escribiendo registros de manera predeterminada en el archivo /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log hasta que el disco esté lleno.
Actualmente, tengo que eliminar manualmente este archivo para evitar que el disco esté lleno. Leí que en Docker 1.8 habrá un parámetro para rotar los registros . ¿Qué recomendarías como la solución actual?
Docker 1.8 se ha lanzado con una opción de rotación de registros. Agregando:
--log-opt max-size=50m
cuando se lanza el contenedor hace el truco. Puede obtener más información en: https://docs.docker.com/engine/admin/logging/overview/
PRECAUCIÓN: Esto es solo para Docker-compose versión 2
Ejemplo:
version: ''2''
services:
db:
container_name: db
image: mysql:5.7
ports:
- 3306:3306
logging:
options:
max-size: 50m
Pase las opciones de registro mientras ejecuta un contenedor. Un ejemplo será el siguiente
sudo docker run -ti --name visruth-cv-container --log-opt max-size=5m --log-opt max-file=10 ubuntu /bin/bash
donde
--log-opt max-size=5m
especifica que el tamaño máximo del archivo de registro debe ser de 5 MB y
--log-opt max-file=10
especifica el número máximo de archivos para la rotación.
Precaución: esta publicación se relaciona con las versiones de Docker <1.8 (que no tienen la opción
--log-opt
)
¿Por qué no usas logrotate (que también admite compresión)?
/var/lib/docker/containers/*/*-json.log {
hourly
rotate 48
compress
dateext
copytruncate
}
Configúrelo directamente en su nodo CoreOs o implemente un contenedor (por ejemplo, https://github.com/tutumcloud/logrotate ) que monta / var / lib / docker para rotar los registros.