Docker mehrere Volume-Treiber

Docker mehrere Volume-Treiber

Ist es mit Docker 1.8+ möglich, unterschiedliche Volume-Treiber für unterschiedliche Volumes in einem Container anzugeben?

Kann ich also bei einem Volume den Standardtreiber für die lokale Speicherung und einen anderen für NFS oder so verwenden?

Außer dem Mounten des Hostsystems mit einem NFS-Ordner.

Antwort1

Dies ist unmöglich, da für den Container nur ein Treiber verwendet wird, wie in der Manpage von Docker 1.11 beschrieben.

--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.

und von einemDocker-Mitgliedszitat aus Dockers GitHub

Antwort2

Beginnen mitDocker 17.05.0-cekönnen Sie die --mountOption mit verwenden docker run, was die Verwendung verschiedener Lautstärketreiber erleichtert. Beispiel:

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

Antwort3

Scheint tatsächlich nicht möglich zu sein, aber es gibt einen Trick, um es mit einer Befehlszeile zum Laufen zu bringen (aus demselben Docker-Member-Beitrag) :

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

verwandte Informationen