2017-08-28 5 views
1

ホストから複数のボリュームをマウントして単一のターゲットマウントポイントを形成する方法はありますか?このようなビット:私は答えを推測している1つのターゲットディレクトリに複数のボリューム?

docker run --name ubuntu_bash \ 
    --rm --interactive --tty \ 
    --volume=/media/Large/videos:/videos \ 
    --volume=/media/Small/videos:/videos \ 
    ubuntu find /videos 

は、それがウェブ上でこれを検索するために少し難しいドッカーの文脈の中で非常に多くの意味を持つ「オーバーレイ」で何が、ではありません。

そうでない場合は、Docker Storeの画像が役に立ちますか?残念ながら、多くのDocker画像では、それらを使用する方法に関する十分な指示がありません。

+1

これを行うためのドッカー固有の方法はありません。 mountコマンドでこれを行うための一般的なLinuxの方法が見つかったら、それを使って独自のマウントフラグでボリュームをマウントすることができます。 – BMitch

+0

ご確認いただきありがとうございます。あなたが答えとして投稿すれば、私はあなたに適切なクレジットを与えることができます。 –

答えて

3

これはボリュームに対してこれを行うための組み込みの方法はありません。通常、ローカルボリュームのバインドマウントです。 unionfsマウントは、コンテナの作成に使用されるイメージレイヤ用ですが、ボリュームはこれから完全に外で動作し、unionfsの上にマウントされ、そのディレクトリへのすべてのファイルシステム要求を傍受します。

Linuxマウントでこれを行うソリューションを作成する場合は、同じlinuxマウントオプションを使用して、ドッカーでボリュームマウントを定義できます。ボリュームドライバがローカルであるこれらの例の全てにおいて

# For a reusable volume 
$ docker volume create --driver local \ 
    --opt type=nfs \ 
    --opt o=addr=192.168.1.1,rw \ 
    --opt device=:/path/to/dir \ 
    foo 

# For a local container with docker run 
$ docker run -it --rm \ 
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,volume-opt=o=addr=192.168.1.1,volume-opt=device=:/host/path \ 
    foo 

# For a swarm mode service 
$ docker service create \ 
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,volume-opt=o=addr=192.168.1.1,volume-opt=device=:/host/path \ 
    foo 

注、及びボリューム-OPTは次のようにマウントオプションのすべてを渡すために使用される:例えば、ドッカーでNFSマウントを行う方法は以下の通りでありますあなたはマウントコマンドを実行します。

+0

これは参考になります。ホストOSでマウントポイントを定義するよりも、dockerfileで迷惑をかけずに掃除する方が簡単です –