En este post vamos a abordar algunos temas fundamentales relacionados con la gestión de Docker y el manejo de espacio en disco en Linux. Veremos cómo iniciar el daemon de Docker con una configuración especial para los logs, cómo visualizar el uso del disco y, finalmente, cómo limpiar los logs de Docker que pueden ocupar espacio innecesario con el tiempo. Este post surge por la necesidad de liberar espacio generado por los logs .json generados por GitLab con Docker que tengo montado en un servidor linux personal.

Cómo iniciar Docker con la opción –log-driver=none

Docker por defecto genera archivos de log para cada contenedor, lo que puede llegar a consumir mucho espacio en disco si no se gestionan adecuadamente. Una forma de evitar esto es iniciar el Docker daemon con la opción --log-driver=none, que desactiva la generación de logs para los contenedores.

Paso 1: Modificar el archivo de configuración de Docker

Para configurar Docker y evitar la generación de logs, podemos modificar el archivo daemon.json, normalmente ubicado en /etc/docker/daemon.json.

Edita el archivo de configuración:

sudo nano /etc/docker/daemon.json

Agrega la siguiente línea:

{ 
     "log-driver": "none" 
}

Guarda los cambios y reinicia Docker:

sudo systemctl restart docker

      Con estos pasos, Docker dejará de generar logs en formato JSON para sus contenedores.

      Comando para ver el espacio en disco en Linux

      Uno de los comandos más útiles en Linux es df, que te permite ver el uso de espacio en disco de manera rápida y efectiva. Es particularmente importante cuando estás gestionando múltiples contenedores en Docker, ya que estos pueden consumir espacio rápidamente si no se monitorean adecuadamente.

      Para visualizar el uso del disco de forma legible, utiliza el siguiente comando:

      df -h

      Este comando te mostrará una lista de las particiones de tu sistema y cuánto espacio están utilizando. La opción -h formatea la salida en unidades legibles por humanos (GB, MB).

      Si solo quieres ver el uso de disco de una partición específica, como / (el sistema de archivos raíz), puedes ejecutar:

      df -h /

      Además, si estás interesado en el uso de un directorio específico, puedes utilizar el comando du:

      du -sh /ruta/al/directorio

      Este comando es ideal para analizar directorios específicos que pueden estar creciendo rápidamente.

      Cómo borrar los logs JSON de Docker

      A medida que Docker ejecuta contenedores, genera archivos de log en formato JSON que se almacenan en el sistema y pueden ocupar bastante espacio en el tiempo. Para limpiar estos logs, sigue los siguientes pasos:

      Detener los contenedores (opcional pero recomendado para evitar conflictos):

      sudo docker ps -q | xargs docker stop

      Ubicar los archivos de log: Normalmente, los logs están ubicados en:

      /var/lib/docker/containers/<container-id>/<container-id>-json.log

      Para ver todos los archivos de log, ejecuta:

      sudo ls -lh /var/lib/docker/containers/*/*-json.log

      Eliminar o vaciar los logs:

      Eliminar los logs:

      sudo rm /var/lib/docker/containers/*/*-json.log

      Vaciar los logs sin eliminarlos (opción más segura):

      sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log

      Reiniciar los contenedores:

      Si detuviste los contenedores previamente, puedes reiniciarlos con:

      sudo docker ps -a -q | xargs docker start

      De esta forma, puedes liberar espacio en disco y mantener el rendimiento óptimo de tu servidor.

      Gestionar Docker y el espacio en disco en Linux es esencial para mantener un servidor funcionando de manera eficiente. Configurar Docker para desactivar la generación de logs con la opción --log-driver=none, monitorear el uso de disco con el comando df y limpiar los archivos de log de Docker regularmente, son prácticas que pueden ayudar a evitar problemas de almacenamiento y mejorar el rendimiento.

      Espero que este post te haya sido útil para gestionar Docker en tu servidor. ¡No dudes en dejar tus comentarios o preguntas abajo!

      Por Miguel Ramírez

      Analista de Sistemas y Desarrollador de Software, apasionado por las nuevas tecnologías en el mundo de la programación. Programando desde 2001.

      Deja una respuesta

      Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *