Limpiar logs de contenedores docker

I am Christian Loza Peralta, working as a technical leader specialized in software engineering and software architecture. My expertise lies in the development of scalable and secure applications, utilizing agile methodologies, as well as in the implementation of cloud-based solutions and the adoption of microservices architectures. Furthermore, my interest in philosophy and anthropology shapes my holistic approach to designing solutions that are not only technically robust but also contribute to technological culture. With a constant commitment to learning and improvement, I aim to tackle projects from a comprehensive perspective that combines technical and cultural effectiveness
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

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: linkNo 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
logrotatey coordinaciones conmax-size


![[Quarkus] - Entendiendo el @Nonblocking (BabySteps)](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2FjM7nOw748Ho%2Fupload%2F235aec0da3879c41d9aa08fdde5cbb2d.jpeg&w=3840&q=75)
![[Ubuntu] 24.04 - Instalación VPN FortiClient](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2Fa_PDPUPuNZ8%2Fupload%2F1491f93ea77059db4fbe85fd714abe72.jpeg&w=3840&q=75)
![[Ubuntu] - Instalación Zoom sin extensiones (ibus)](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2FEh1xd5xDE-s%2Fupload%2F654d53fe3407e98e8c68a7c3798ae4f3.jpeg&w=3840&q=75)