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