Cambiar el directorio de datos de Docker

8

¿Cómo puedo cambiar el directorio de datos de Docker donde Docker guarda el contenedor (o donde lxc guarda el contenedor)? Tengo en mi servidor un SSD y un disco duro y quiero que el contenedor se guarde en el disco duro. Gracias

ssd_rider
fuente

Respuestas:

11

Creo que en esta guía tendrás una buena explicación.

Puede cambiar el directorio base de almacenamiento de Docker (donde van el contenedor y las imágenes) utilizando la opción -g al iniciar el demonio Docker.

Ubuntu / Debian: edite su /etc/default/dockerarchivo con la -gopción:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"

Fedora / Centos: edite /etc/sysconfig/dockery agregue la -gopción en la variable other_args: ej. other_args="-g /var/lib/testdir". Si hay más de una opción, asegúrese de encerrarlas en "". Después de reiniciar, (reinicio de Docker de servicio) Docker debería usar el nuevo directorio.

Usar un enlace simbólico es otro método para cambiar el almacenamiento de imágenes.

Precaución: estos pasos dependen de que su / var / lib / docker sea un directorio real (no un enlace simbólico a otra ubicación).

1) Detener ventana acoplable: service docker stop. Verifique que ningún proceso de Docker esté ejecutando ps faux

2) Docker de doble verificación realmente no se está ejecutando. Eche un vistazo al directorio actual de docker: ls/var/lib/docker/

2b) Hacer una copia de seguridad - tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz

3) Mueva el /var/lib/dockerdirectorio a su nueva partición:mv /var/lib/docker /mnt/pd0/docker

4) Haz un enlace simbólico: ln -s /mnt/pd0/docker /var/lib/docker

5) Eche un vistazo a la estructura del directorio para asegurarse de que se vea como antes del mv: ls /var/lib/docker/(tenga en cuenta la barra inclinada final para

6) Iniciar copia de seguridad de la ventana acoplable service docker start

7) reinicia tus contenedoresresuelve el enlace simbólico)

Conrado Fonseca
fuente
¿Cuál es la razón de 4)? ¿Es necesario? En mi caso, me gustaría tener archivos Docker en un RAID montado, y no en la partición de arranque.
Roman Mik
9

En versiones más recientes de Docker en Ubuntu, editará /etc/default/daemon.json de esta manera:

{
    "data-root": "/new/location"
}
MattK
fuente
2

Para cambiar el datadirectorio en el dockerque se debe ejecutar con la opción -g /my/data. En mi /etc/default/dockerpongo:

DOCKER_OPTS="-g /srv/docker"

Vea también mis notas aquí .

Para cambiar el datadirectorio en lxcpuse en /etc/lxc/lxc.conf:

lxc.lxcpath = /srv/lxc

Stuart Cardall
fuente
1

Actualice a Docker 1.13.0.

De las notas de la versión:

- New
The storage location of the Linux volume can now be moved
Snowcrash
fuente
1

Para ampliar la respuesta de @ MattK:

La documentación de Docker sobre el control del demonio Docker sugiere que la forma independiente de la plataforma para hacer esto es:

edite el archivo /etc/docker/daemon.json para contener la línea

{
    "data-root": "/mnt/docker-data",
    (...)
}

donde /mnt/docker-dataes el directorio donde desea que vivan las imágenes y los contenedores de la ventana acoplable.

Entonces

sudo systemctl restart docker

Puede verificar si funcionó ejecutando

docker info

y busque el contenido de la línea que comienza con Docker Root Dir:.

Consulte también https://stackoverflow.com/a/50217666/2209313 y https://unix.stackexchange.com/q/452368/36043 .

Lógica Errante
fuente