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!