Controlador de volumen múltiple de Docker

Controlador de volumen múltiple de Docker

¿Es posible con Docker 1.8+ especificar diferentes controladores de volumen para diferentes volúmenes en un contenedor?

Entonces, ¿puedo usar con un volumen el controlador predeterminado para almacenamiento local y otro diferente con NFS o algo así?

Excepto montar el sistema host con una carpeta NFS.

Respuesta1

Esto es imposible, solo se usa un controlador para el contenedor como se describe en la página de manual de Docker 1.11.

--volume-driver=""
     Container's volume driver. This driver creates volumes specified either from
     a Dockerfile's VOLUME instruction or from the docker run -v flag.
     See docker-volume-create(1) for full details.

y de unCita de miembro de Docker del github de Docker

Respuesta2

Empezando conDocker 17.05.0-ce, puede usar la --mountopción con docker run, lo que facilita el uso de diferentes controladores de volumen. Por ejemplo:

docker run -ti \
  --mount volume-driver=convoy,src=volume-name1,target=/mnt/vol1 \
  --mount volume-driver=local,src=volume-name2,target=/mnt/vol2 \
  ubuntu bash

Respuesta3

De hecho, parece que no es posible, pero hay un truco para que funcione con una línea de comando (de la misma publicación de miembro de Docker) :

docker run -d \
    -v $(docker volume create --driver=flocker --name=volumename):/data \
    -v $(docker volume create --driver=foobar --name=something):/somewhere \
    myimage

información relacionada