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

Ver los registros de los contenedores

Tabla de contenidos

El comando docker logs muestra la información registrada por un contenedor en ejecución. El comando docker service logs muestra la información registrada por todos los contenedores que participan en un servicio. La información que se registra y el formato del registro dependen casi por completo del comando del punto de entrada (entrypoint) del contenedor.

Por defecto, docker logs o docker service logs muestra la salida del comando tal como aparecería si ejecutaras el comando de forma interactiva en una terminal. Los comandos de Unix y Linux normalmente abren tres flujos de E/S al ejecutarse, llamados STDIN, STDOUT y STDERR. STDIN es el flujo de entrada del comando, que puede incluir la entrada del teclado o la entrada de otro comando. STDOUT suele ser la salida normal de un comando y STDERR se utiliza habitualmente para mostrar mensajes de error. Por defecto, docker logs muestra la salida de STDOUT y STDERR del comando. Para leer más sobre E/S y Linux, consulta el artículo del Linux Documentation Project sobre la redirección de E/S.

En algunos casos, es posible que docker logs no muestre información útil a menos que realices pasos adicionales.

  • Si utilizas un controlador de registro que envía los registros a un archivo, un host externo, una base de datos u otro backend de registro, y tienes deshabilitado el "registro doble" (dual logging), es posible que docker logs no muestre información útil.
  • Si tu imagen ejecuta un proceso no interactivo como un servidor web o una base de datos, es posible que esa aplicación envíe su salida a archivos de registro en lugar de a STDOUT y STDERR.

In el primer caso, tus registros se procesan de otras maneras y puedes optar por no utilizar docker logs. En el segundo caso, la imagen oficial de nginx muestra una solución alternativa, y la imagen oficial de Apache httpd muestra otra.

La imagen oficial de nginx crea un enlace simbólico de /var/log/nginx/access.log a /dev/stdout, y crea otro enlace simbólico de /var/log/nginx/error.log a /dev/stderr, sobrescribiendo los archivos de registro y provocando que los registros se envíen al dispositivo especial correspondiente en su lugar. Consulta el Dockerfile.

El controlador oficial de httpd cambia la configuración de la aplicación httpd para escribir su salida normal directamente en /proc/self/fd/1 (que es STDOUT) y sus errores en /proc/self/fd/2 (que es STDERR). Consulta el Dockerfile.

Próximos pasos