# 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](https://cdn.hashnode.com/res/hashnode/image/upload/v1719633927624/9ba0466f-0d3f-460c-8d64-71e4f57eb6a9.png align="center")

### 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
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1719635013746/6eacc756-2ccc-4d30-9312-9dc9224b565a.png align="center")

# 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](https://docs.docker.com/config/containers/logging/local/)
    
* 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](https://docs.docker.com/engine/install/linux-postinstall/))
    
* Para servidores de entornos de productivos, debe considerarse al menos utilizar `logrotate` y coordinaciones con `max-size`
