Compartir comentarios
Las respuestas se generan en base a la documentación.

Controlador de registro JSON File

Tabla de contenidos

Por defecto, Docker captura la salida estándar (y el error estándar) de todos tus contenedores y los escribe en archivos utilizando el formato JSON. El formato JSON anota cada línea con su origen (stdout o stderr) y su marca de tiempo. Cada archivo de registro contiene información sobre un solo contenedor.

{
  "log": "Log line is here\n",
  "stream": "stdout",
  "time": "2019-01-01T11:11:11.111111111Z"
}
Warning

El controlador de registro json-file utiliza almacenamiento basado en archivos. Estos archivos están diseñados para ser accedidos exclusivamente por el demonio de Docker. Interactuar con estos archivos con herramientas externas puede interferir con el sistema de registro de Docker y provocar un comportamiento inesperado, por lo que debe evitarse.

Uso

Para usar el controlador json-file como el controlador de registro predeterminado, establece las claves log-driver y log-opts con los valores adecuados en el archivo daemon.json. Para obtener más información sobre cómo configurar Docker mediante daemon.json, consulta daemon.json.

Note

Si usas Docker Desktop, edita la configuración del demonio a través del panel de Docker Desktop. Abre Settings y selecciona Docker Engine. Para más detalles, consulta Configuración de Docker Engine.

El siguiente ejemplo establece el controlador de registro en json-file y configura las opciones max-size y max-file para habilitar la rotación automática de registros.

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
Note

Las opciones de configuración de log-opts en el archivo de configuración daemon.json deben proporcionarse como cadenas. Los valores booleanos y numéricos (como el valor para max-file en el ejemplo anterior) deben, por lo tanto, estar entre comillas (").

Reinicia Docker para que los cambios surtan efecto en los contenedores nuevos. Los contenedores existentes no utilizarán la nueva configuración de registro automáticamente.

Puedes establecer el controlador de registro para un contenedor específico utilizando la opción --log-driver al emplear docker container create o docker run:

$ docker run \
      --log-driver json-file --log-opt max-size=10m \
      alpine echo hello world

Opciones

El controlador de registro json-file admite las siguientes opciones de registro:

OpciónDescripciónValor de ejemplo
max-sizeEl tamaño máximo del registro antes de rotarlo. Un número entero positivo más un modificador que representa la unidad de medida (k, m o g). El valor predeterminado es -1 (ilimitado).--log-opt max-size=10m
max-fileEl número máximo de archivos de registro que pueden estar presentes. Si la rotación de los registros crea un exceso de archivos, se elimina el archivo más antiguo. Solo es efectivo cuando max-size también está configurado. El valor predeterminado es 1.--log-opt max-file=3
labelsAplica al iniciar el demonio de Docker. Una lista separada por comas de etiquetas relacionadas con el registro que este demonio acepta. Se utiliza para opciones avanzadas de etiquetas de registro.--log-opt labels=production_status,geo
labels-regexSimilar y compatible con labels. Una expresión regular para hacer coincidir etiquetas relacionadas con el registro. Se utiliza para opciones avanzadas de etiquetas de registro.--log-opt labels-regex=^(production_status|geo)
envAplica al iniciar el demonio de Docker. Una lista separada por comas de variables de entorno relacionadas con el registro que este demonio acepta. Se utiliza para opciones avanzadas de etiquetas de registro.--log-opt env=os,customer
env-regexSimilar y compatible con env. Una expresión regular para hacer coincidir variables de entorno relacionadas con el registro. Se utiliza para opciones avanzadas de etiquetas de registro.--log-opt env-regex=^(os|customer)
compressAlterna la compresión de los registros rotados. El valor predeterminado es false (sin compresión).--log-opt compress=true

Ejemplos

Este ejemplo inicia un contenedor alpine que puede tener un máximo de 3 archivos de registro de no más de 10 megabytes cada uno.

$ docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash