Cómo decirle a Docker que almacene y ejecute contenedores en una unidad externa

Estoy ejecutando Docker en Ubuntu Linux. Tengo un Dockerfile eso trae muchos datos de otros lugares. Puse el Dockerfile en una unidad externa que he montado en el sistema de archivos local (ext4). Luego ejecuté la compilación desde el sistema de archivos de esa unidad externa.

docker build -t mycontainer .

Observé el uso de la unidad a medida que se construía el contenedor. Todo el uso de la unidad estaba en el sistema de archivos raíz en lugar de la unidad adjunta.

He leído algunos artículos sobre cómo cambiar la raíz/base de Docker de /var/lib/docker a otro lugar, pero hasta ahora todo lo que tengo es docker.service: Failed with result 'exit-code'.

También intenté agregar el -g options en el /lib/systemd/system/docker.service file:

ExecStart=/usr/bin/dockerd -H fd://  # originalExecStart=/usr/bin/dockerd -g /new/path/docker -H fd://  # updated

Esto tampoco ayudó.

¿Cómo puedo decirle a Docker que use la unidad externa?

Varias cosas me ayudaron a que esto funcionara. Primero, estaba montando el sistema de archivos externo en un directorio de inicio, lo que puede haber causado algunos problemas de permisos. Así que volví a montar el sistema de archivos en /mnt y se actualizaron los permisos y la propiedad de la siguiente manera:

# chown -R root:root /mnt/external-drive/docker-base# chmod 701 /mnt/external-drive/docker-base

Luego creé el /etc/docker/daemon.json archivo con estos contenidos:

{    "graph": "/mnt/external-drive/docker-base"}

Reinicié el servicio Docker y todo parece estar bien. Hacer una docker build y la unidad externa está recibiendo todo el contenido.