Docker en una carpeta que no sea /var/lib/docker

Sucede que por problemas de espacio tienes que instalar o mover todo docker a una carpeta distinta a la "oficial".

Mover los volúmenes por sí solo no es suficiente porque lo que realmente pesa son las imágenes antiguas, los contenedores y las superposiciones.

Para borrar imágenes antiguas puedes usar el comando:

sudo docker image prune -a

Pero a veces es mejor mover todo el entorno a un directorio dedicado, que quizás sea una partición más grande o un disco montado ad hoc para contener muchos más datos que los previstos para el sistema operativo host.

Esta es una lista de pasos a seguir para mover docker a una carpeta diferente a la nativa /var/lib/docker

Hacer una copia de seguridad

En primer lugar, detenga todos los contenedores, servicio docker y haga una buena copia de seguridad

sudo systemctl stop docker

Asegúrese de que servicio esté detenido

sudo systemctl status docker

crear una copia de los volúmenes si hay suficiente espacio

sudo mkdir /home/backup
sudo rsync -aP /var/lib/docker/volumes/ /home/backup

Preparación

cree la carpeta donde se ejecutará la ventana acoplable (puede ser una partición grande o un disco montado ad hoc)

mkdir /home/docker

copie todo el acoplador a esa carpeta

rsync -aP /var/lib/docker/ /home/docker

Método 1

Crear y/o editar el archivo /etc/docker/daemon.json

{
     "data-root": "/home/docker"
}

Método 2

Actualizar el archivo de la unidad docker (no recomendado)

sudo nano /lib/systemd/system/docker.service

cambiar

ExecStart=/usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd.sock
en

ExecStart=/usr/bin/dockerd -g /home/docker -H fd:// --containerd=/run/containerd/containerd.sock

Reiniciar

Recarga el servicio haciéndole sentir los cambios

sudo systemctl daemon-reload

y finalmente reiniciar docker

systemctl start docker

Verificar

para ver que todo salio bien

docker images

tome la identificación de una imagen y haga la inspección buscando el WorkDir

docker image inspect image_id | grep WorkDir

Cancelar copia de seguridad

rm -rf /home/backup