Por defecto, Docker almacena la mayoría de sus datos dentro del directorio /var/lib/docker
en los sistemas basados en GNU/Linux. Puede llegar un momento en el que tengas la necesidad de mover este directorio a otro lugar por algún motivo.
Por ejemplo, que tengas /var
en una partición y te estés quedando sin espacio y necesites mover todo a otra ruta. En este tutorial, explicaremos como cambiar el directorio de Docker a otra ubicación.
Parar el servicio de Docker
Lo primero que tenemos que hacer, es detener la ejecución de Docker. Para luego así poder hacer cambios en el servicio de SystemD.
systemctl stop docker.service
systemctl stop docker.socket
Modificar el fichero de SystemD de Docker
A continuación tendremos que modificar el fichero /lib/systemd/system/docker.service
para reconfigurar lo siguiente:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Por esto:
ExecStart=/usr/bin/dockerd -g /virtual/docker -H fd:// --containerd=/run/containerd/containerd.sock
Si nos fijamos, hemos añadido el parámetro -g
para configurar el nuevo directorio de Docker. En este caso hemos seleccionado /virtual/docker
.
Si fuera necesario, crearemos el directorio que hemos configurado por si no existiera en nuestro sistema de ficheros.
mkdir -p /virtual/docker
Sincronizamos datos
Ahora que tenemos el nuevo directorio preparado, vamos a copiar los ficheros de /var/lib/docker
al nuevo directorio.
rsync -aqxP /var/lib/docker/ /virtual/docker
Iniciamos Docker con la nueva configuración
Finalmente, iniciaremos de nuevo Docker con la nueva configuración, esta vez, con nuestro directorio recién reconfigurado:
systemctl daemon-reload
systemctl start docker
Tras iniciarlo, podremos comprobar con este comando que se está ejecutando con el nuevo directorio:
# ps aux | grep -i docker | grep -v grep
root 14169 0.0 0.4 2267048 74472 ? Ssl 16:57 0:00 /usr/bin/dockerd -g /virtual/docker -H fd:// --containerd=/run/containerd/containerd.sock
Ya tenemos Docker arrancado en el nuevo directorio y funcionando correctamente. Recuerda, que tras comprobar que todo funciona correctamente, puedes proceder a eliminar el directorio antiguo:
rm -rf /var/lib/docker
Comentarios