El siguiente post es una guía para cambiar la ubicación de la carpeta que Docker tiene por default para almacenar
sus contenedores: /var/lib/docker
.
La razón principal porque es práctico hacerlo es la falta de espacio en /dev
. Estas instrucciones fueron probadas en Debian 9, supongo que funcionará
en cualquier otro sistema que utilice systemd. No tiene mayor complicación, sigue las instrucciones:
Lo primero que tenemos que hacer es modificar el script de inicio de Docker en el systemd. Como root abre el archivo con tu editor favorito.
/lib/systemd/system/docker.service
y reemplaza /path/to/docker
con la nueva ubicación que deseas, /home/zorbax/bin/docker
, en mi caso:
FROM:
ExecStart=/usr/bin/dockerd -H fd://
TO:
ExecStart=/usr/bin/dockerd -g /path/to/docker -H fd://
Una vez editado el archivo hay que detener el servicio de docker:
# systemctl stop docker
Es importante asegurarse que el demonio de Docker no se está ejecutando. En el siguiente comando no debe de aparecer el proceso:
# ps aux | grep -i docker | grep -v grep
Reiniciamos el demonio systemd
una vez que nos aseguramos que no se estaba ejecutando docker:
# systemctl daemon-reload
Ahora hay que crear el directorio que especificaste en el primer paso y opcionalmente sincronizar los datos que tengas actualmente a la neuva ubicación:
# mkdir -p /home/zorbax/bin/docker
# rsync -aqxP /var/lib/docker/ /home/zorbax/bin/docker
Iniciamos el demonio de docker:
# systemctl start docker
Verificamos que docker se está ejecutando en el nuevo directori:
# ps aux | grep -i docker | grep -v grep
root 27004 0.0 0.2 540456 45396 ? Ssl 01:06 0:06 /usr/bin/dockerd -g /home/zorbax/bin/docker -H fd://
root 27014 0.0 0.0 383052 10416 ? Ssl 01:06 0:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
¡Listo!