Recibe actualizaciones por: rss | twitter | email

Logs en Docker

Escrito por:
Fecha: 2020-07-24 18:13:00 00:00

Cuando se trabaja en Linux, una de las mejores ayudas al manejar servidores, es hacer uso de logs para determinar que puede estar saliendo mal si algo no funciona como uno espera.

Cuando se trabaja con Docker, en general se pierde esta opción, pues toda la acción sucede dentro de los contenedores, y por lo tanto no podemos ver los logs.

Uno de mis comandos favoritos cuando algo no funciona es:

tail -f /var/log/algun-log

Para tener esto mismo dentro de Docker el comando adecuado es:

docker logs <container_id>

Ahora bien, para conocer el "container_id" vamos a usar el comando

docker ps

En la primer columna tendremos los IDs, escogemos uno, y usamos el comando visto anteriormente. Esto mostrará todos los logs disponibles de ese contenedor, si solo queremos ver las últimas 100 líneas por ejemplo:

docker logs <container_id> --tail 100

Puedes cambiar el 100, por cualquier cantidad de líneas que desees ver. Otra opción es ver en tiempo real las últimas líneas, tal como se van escribiendo en el archivo de logs.

docker logs <container_id> -f

Y si queremos ver la hora de cada registro.

docker logs <container_id> -t

Por supuesto, podemos combinar.

docker logs <container_id> -f -t

También se puede combinar con otros comandos de Linux mediante el uso de pipe:

docker logs <container_id> -f | grep <string>

Este comando imprimirá los registros que contengan la cadena indicada.

docker logs <container_id> -f | awk '{print $5 }'

Este comando imprimirá solo la quinta columna de los registros.