El otro día me paso algo curioso , en la maquina virtual donde tengo alojados todos los servicios y dockers se quedo sin espacio , estaba al 100% de ocupación , después de borrar todos los ficheros de la papelera y demás aun ocupaba mucho /dev/root , total que me puse a ver que leches estaba ocupando tanto espacio , a priori ya vi que los los logs de los dockers ocupaban la leche.
Con este comando nos mostrara el tamaño de los logs de cada uno de los dockers
cd /var/lib/docker/containers
docker ps -aq | xargs -I '{}' docker inspect --format='{{.LogPath}}' '{}' | xargs ls -lh
Alguno de los logs superaba con creces los tres gigas !!! , WTF

Para evitar esto en nuestro dockercompose añadiremos esto a cada uno de los containers
xxxxxxxxxx
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
o esto para hacerlo con todos los dockers a la vez
xxxxxxxxxx
sudo apt install jq
echo '{"log-driver": "json-file", "log-opts": {"max-size": "10m", "max-file": "3"}}' | jq . > /etc/docker/daemon.json \
&& systemctl restart docker
Después de este comando veremos como quedan los ficheros después de adelgazar bastante


Con este comando buscamos los fciheros mas grandes
xxxxxxxxxx
find / -mount -type f -printf '%s %p\n'| sort -nr | head --lines=30
Si queda algun json.log lo eliminaremos a mano
Ya hemos liberado 5Gb mas

Ahora toca hacer limpieza de los dockers
xxxxxxxxxx
docker builder prune
O mas a lo bestia
xxxxxxxxxx
docker system prune --all --volumes --force
Luego tendremos que crear la red traefik de nuevo con
xxxxxxxxxx
docker network create traefik
Y recrear todos los containers con
xxxxxxxxxx
docker-compose up -d
Lo siguiente es un buen apt clean
xxxxxxxxxx
sudo apt update
sudo apt clean

Comprobaremos que ocupa cada uno de los directorios
xxxxxxxxxx
sudo ncdu -x -r /

Y para acabar comprobaremos que en los dispositivos montados no tengamos nada extraño
- Accederemos como su
- Desmontarnos todo lo que tengamos montado : sudo umount -a
- iremos a la ruta de dispositivos montados y ver qué ficheros están ahí y no deberían de estar, teniendo en cuenta que no hay nada montado , si hubiera algo lo eliminaríamos
Y con esto y un bizcocho ……..
Bonus : A veces se llenan los directorios tmp , a mi de pronto me apareció uno uno 86GB de porqueria y al borrarlo error de argumentos
xxxxxxxxxx
bash /bin/ls La lista de argumentos es demasiado larga
Para ello usaremos el siguiente comando
xxxxxxxxxx
#Comprobamos el contenido de la carpeta
ls /var/lib/docker/overlay2/5e42d98a49443a271cc848db26edda9f3078df76dd9fe6f8a206bd8320ec1098/diff/tmp
#Borramos todo su contenido de forma recursiva OJO
find /var/lib/docker/overlay2/5e42d98a49443a271cc848db26edda9f3078df76dd9fe6f8a206bd8320ec1098/diff/tmp/ -name '*' | xargs rm