2016-06-24 9 views
1

私はドッカーを実行するためにEC2インスタンスを使用しています。 OSXを使用している私のローカルマシンから、私はdockerマシンを使ってコンテナとボリュームを作成しています。しかし、私がローカルのフォルダをどのコンテナにもマウントしようとしているときは不可能です。最初のコマンドでAmazon Docker ContainerにHOSTフォルダをマウントできませんか?

docker create -v /data --name data-only-container ubuntu /bin/true 
docker run -it --volumes-from data-only-container -v $(pwd)/data:/backup ubuntu bash 

、私はデータのみのコンテナを作成して、私はデータオンリーコンテナのボリュームを持っている必要があり、コンテナと私がマウントしようとしている1に入るために2番目のコマンドを実行していますしかし、ときにフォルダー/バックアップは、私が間違ってやっている何

空のアクセスがありますか?

EDIT: 私はコンテナに自分のPCからバックアップさのデータを復元するために、ホストのフォルダをマウントしようとしています。その場合、どのようなアプローチが異なるでしょうか?

は私がFlockerを使用しよううか?

答えて

2

-v /path/to/dir:/container/mntを搭載したホストボリュームは、コンテナ内部ドッカーホストからディレクトリをマウント。 OSXシステムでこのコマンドを実行すると、$(pwd)/dataは、ローカルマシン上のドッカーホストではないEC2インスタンスのディレクトリを参照します。 EC2インスタンスにログインすると、$(pwd)/dataディレクトリが作成されて空になっている可能性があります。あなたがドッキングウィンドウコンテナにあなたのOSXのシステムからフォルダをマウントしたい場合は

、あなたはOSXシステム自体にドッカーを実行する必要があります。


編集:クラウドであなたのコンテナまでのデータを移動する方法の追加質問に答えるために、そこにドッキングウィンドウの外に、クラウド・プロバイダー自体にデータを移動する方法がしばしばあり、その後、直接それを含めます容器の内側にある。これはあなたのドッキングウィンドウのホスト上の指定されたボリュームにパイプ上のtarを使用してデータをアップロードします

tar -cC /source . | \ 
docker run --rm -i -v app-data:/target busybox \ 
    /bin/sh -c "tar -xC /target" 

:ドッキングウィンドウにのみアプローチを行うには、あなたのような何かを行うことができます。名前付きの「app-data」ボリュームを他のコンテナに含めることができます。大規模なデータセットでこれを複数回実行する必要がある場合は、rsyncコンテナを作成する方が効率的です。

+0

実際に私が得る唯一のことは、AWS上のドッキングウィンドウのホスト上で私の$(PWD)のコピーです。 「OSXシステムでDockerを実行する」とはどういう意味ですか?それはバーチャルボックスだけが可能だと言っていますか? –

+0

コンテナを実行しているドッカーホストは、実行中のコンテナと共有できるように、そのホスト上にファイルシステムを表示する必要があります。そのようなホストベースのボリュームを作成し、OSXボックスからファイルを共有するには、DockerベータまたはVirtualBoxのいずれかを使用してコンテナを実行するのが最善の方法です。上級者向けには、他の[dockerボリュームドライバ](https://github.com/docker/docker/blob/master/docs/extend/plugins.md)があり、ホスト、コンテナ、または名前付きボリューム。 – BMitch

関連する問題