Cambiar la ruta raíz del entorno de Docker

Publicado por pico.dev el , actualizado el .
blog-stack gnu-linux planeta-codigo planeta-linux
Comentarios

Cambiando la ruta raíz del entorno de ejecución de docker, dónde guarda las imágenes de los contenedores, los datos de los contenedores y otros metadatos, podemos almacenar esta información en un disco duro externo o memoria USB.

Docker

Por defecto el directorio donde se guardan las imágenes y los contenedores junto con otros metadatos de Docker es /var/lib/docker. En mi caso hace un tiempo me compre un disco de estado sólido Samsung 840 EVO de 250 GiB y comenté en el artículo del anterior enlace. Aunque probablemente un disco SSD sea suficientemente fiable como para que antes de que falle cambiémos de ordenador porque ya es antiguo, yo trato de evitar hacer muchas escrituras al disco. Al trabajar con Docker ya sea descargando imágenes, construyendo imágenes propias con archivos Dockerfile y al arrancar contenedores cuyos procesos escriben en disco prefiero externalizar esas escrituras en una unidad USB ya sea un pendrive o un disco duro. En este artículo comentaré como modificar Docker para que las imágenes y los contenedores estén almacenados en una memoria USB o en otra localización de la por defecto.

En Arch Linux el proceso de docker se arranca con un servicio de systemd:

En la definición del servicio de docker se establecen los parámetros de inicio del demonio de docker y deberemos cambiarlo para cambiar la localización de las imágenes y contenedores. En la información de ayuda del comando de docker podemos ver que si queremos cambiar la localización por defecto de las imágenes y contenedores de docker debemos emplear la opción -g “/var/lib/docker”.

En Arch Linux el servicio de systemd de docker se guarda en /usr/lib/systemd/system/docker.service. Modificando el parámetro ExecStart de la sección [Service] para añadir el parámetro -g nos quedaría algo como:

Iniciando ahora el servicio de Docker veremos que en el directorio que hayamos elegido se crean los metadatos y si hacemos un pull de una imagen se guardará en esta localización.

Directorio raíz de docker
Cada vez que se actualice el paquete de docker el archivo del servicio de systemd se sobreescribirá y perderemos la configuración, de modo que en cada actualización de docker deberemos realizar de nuevo la modificación.

Este artículo es uno de otros que he publicado, en otros artículos he escrito sobre otras cosas relacionadas con docker.