Limpiar logs de contenedores docker

Photo by CHUTTERSNAP on Unsplash

Limpiar logs de contenedores docker

Introducción

No hace mucho, me topé con un problema algunos logs excedian alrededor de más de 100GB y otros en camino como de 1GB, no quise eliminar todos los logs, pero si los que ocupan un espacio considerable. A continuación detallo los comando utilizados para la limpieza y reducción de logs.

Comandos

Listar e identificar contenedores por tamaño

El siguiente comando muestra el tamaño de mayor a menor y la ruta del log

sudo docker ps -aq | xargs -I {} sh -c 'echo "$(sudo du -h $(docker inspect -f "{{.LogPath}}" {}))\t$(docker inspect -f "{{.Name}}" {} | tr -d "/")"' | sort -hr

Como podrás ver, lo el comando anterior lista lo siguiente:

  • Tamaño (sea KB,MB o GB)

  • Ruta del contenedor (en mi caso está en home, lo normal es que esté en /var/lib/docker/containers/

  • nombre del contenedor

df

Inspeccionar y eliminar

Puedes utilizar los siguientes comandos para realizar una inspección y también eliminar el log, en este caso tengo el log (señalado en rojo) es el hash (SHA-256) generado: b89c3e52092a4b6f0e2c8356c5f213ce6c61663fb03740efdd3bae8a937a1473

Para la inspección utiliza: docker inspect <<hash>>
Para realizar la eliminación, NO debemos eliminar el log, si no truncarlo para ello el comando es:

sudo truncate -s 0 /home/example/docker-containers/containers/b89c3e52092a4b6f0e2c8356c5f213ce6c61663fb03740efdd3bae8a937a1473/b89c3e52092a4b6f0e2c8356c5f213ce6c61663fb03740efdd3bae8a937a1473-json.log

donde:

  • truncate: modifica el tamaño de archivo

  • -s 0: establecer el tamaño en 0

Consideraciones

  • La ruta puede cambiar acorde a tu configuración que hayas realizado para almacenar los contenedores

  • Puedes modificar el tamaño de los logs con max-size, puedes revisar en el siguiente enlace: link

  • No es necesario utilizar sudo, también depende de como hayas realizado la instalación, de igual forma puedes revisar el siguiente link para ejecuciones de docker sin sudo (link)

  • Para servidores de entornos de productivos, debe considerarse al menos utilizar logrotate y coordinaciones con max-size

Did you find this article valuable?

Support Christian Loza Peralta by becoming a sponsor. Any amount is appreciated!