Docker 複数ボリューム ドライバー

Docker 複数ボリューム ドライバー

Docker 1.8 以降では、1 つのコンテナー内の異なるボリュームに異なるボリューム ドライバーを指定できますか?

つまり、1 つのボリュームでローカル ストレージ用のデフォルト ドライバーを使用し、もう 1 つのボリュームで NFS などの別のドライバーを使用できるということですか?

NFS フォルダーを使用してホスト システムをマウントする場合を除きます。

答え1

これは不可能です。docker 1.11のマニュアルページに記載されているように、コンテナには1つのドライバーのみが使用されます。

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

そして、Docker の github からの Docker メンバーの引用

答え2

で始まりますドッカー 17.05.0-ceでは、--mountと オプションを併用することができdocker run、これにより異なるボリューム ドライバーの使用が容易になります。例:

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

答え3

確かに不可能のようですが、1つのコマンドラインで動作させるトリックがあります(同じDockerメンバーの投稿から) :

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

関連情報