4.1 Fundamentos del comando docker logs
El comando docker logs es una herramienta práctica para monitorear y depurar contenedores. Con su ayuda, los desarrolladores y administradores del sistema pueden revisar los logs de los contenedores, lo que ayuda a diagnosticar problemas y analizar el funcionamiento de las aplicaciones. En esta lección, analizaremos en detalle cómo usar el comando docker logs, qué parámetros están disponibles y cómo gestionar los logs de manera eficiente.
El comando docker logs muestra los logs del contenedor especificado. Estos logs incluyen todos los mensajes registrados por los procesos dentro del contenedor en los flujos de salida estándar (stdout) y de errores (stderr).
Sintaxis
docker logs [OPTIONS] CONTAINER
Dónde:
-
CONTAINER: el nombre o identificador del contenedor cuyos logs quieres ver. -
OPTIONS: parámetros adicionales para personalizar la salida de los logs.
Ejemplo de uso básico
Este comando mostrará todos los logs acumulados del contenedor my_container.
docker logs my_container
4.2 Parámetros del comando docker logs
El comando docker logs tiene varias opciones que te permiten configurar la salida de logs para necesidades específicas.
1. Ver logs en tiempo real
Para ver logs en tiempo real, se usa el parámetro -f (follow). Este parámetro te permite seguir las actualizaciones de los logs a medida que aparecen, similar al comando tail -f.
docker logs -f my_container
2. Limitar el número de líneas mostradas
Puedes limitar el número de líneas mostradas por el comando docker logs usando el parámetro --tail. Esto es útil si solo necesitas las últimas líneas de los logs y no todo el registro.
docker logs --tail 100 my_container
Este ejemplo mostrará solo las últimas 100 líneas de los logs del contenedor my_container.
3. Mostrar logs desde un momento específico
El parámetro --since permite mostrar logs desde un momento específico. La fecha y hora pueden especificarse en formato de marca de tiempo (por ejemplo, 2023-07-20T15:00:00) o en formato relativo (por ejemplo, 1h para los logs de la última hora).
docker logs --since "2023-07-20T15:00:00" my_container
O
docker logs --since 1h my_container
4. Mostrar logs hasta un momento específico
El parámetro --until permite mostrar logs hasta un momento específico. El formato de tiempo es similar al parámetro --since.
docker logs --until "2023-07-20T16:00:00" my_container
O
docker logs --until 10m my_container
5. Unificar stdout y stderr
Por defecto, el comando docker logs muestra tanto el flujo estándar de salida (stdout) como el flujo estándar de errores (stderr). Puedes especificar qué flujos mostrar usando los parámetros --stdout y --stderr.
docker logs --stdout my_container
Este ejemplo mostrará solo los mensajes del flujo estándar de salida.
4.3 Ejemplos de uso
Ejemplo 1: ver las últimas líneas de logs y seguir actualizaciones
Este ejemplo mostrará las últimas 50 líneas de logs del contenedor my_container y seguirá las nuevas entradas en tiempo real.
docker logs -f --tail 50 my_container
Ejemplo 2: mostrar logs de las últimas 24 horas
Este ejemplo mostrará todos los logs acumulados durante las últimas 24 horas para el contenedor my_container.
docker logs --since 24h my_container
Ejemplo 3: mostrar logs de un período específico
Este ejemplo mostrará los logs registrados entre las 15:00 y las 16:00 del 20 de julio de 2023 para el contenedor my_container.
docker logs --since "2023-07-20T15:00:00" --until "2023-07-20T16:00:00" my_container
4.4 Escenarios prácticos
1. Depuración de aplicaciones
Si tu aplicación no funciona correctamente o se "cae", revisar los logs puede ayudarte a diagnosticar el problema. Usa el comando docker logs para encontrar errores y advertencias en los logs.
docker logs my_app_container
2. Monitoreo del servidor
Para monitorear el funcionamiento del servidor en tiempo real, puedes usar el comando docker logs con la opción -f.
docker logs -f web_server_container
Esto te permite seguir las solicitudes y respuestas del servidor en tiempo real.
3. Análisis de rendimiento
Si quieres analizar el rendimiento de la aplicación durante un período de tiempo específico, utiliza los parámetros --since y --until.
docker logs --since "2023-07-20T00:00:00" --until "2023-07-20T23:59:59" my_app_container
GO TO FULL VERSION