2017-01-13 2 views
0

私はVagrantによってプロビジョニングされたバーチャルボックス仮想マシンを持っています。私はドッカーマシンでそれをプロビジョニングしています。これまでのところすべて良いです:私はdocker-machine sshを箱に入れて、docker-machine lsといいました。docker-machineと迷惑メール(マウントボリュームに関して)

これまで、dokcer-machineをまだ使用していないときは、私の通常のワークフローには仮想ボックスへのsshing、ドッカーのインストール、コンテナの回転が含まれていました。

仮想ボックスの外側(基本的に私のwinマシンから)のドッカーマシン(およびドッカー自体)を使って仮想ボックス内のドッカーコンテナを制御できるので、これはもう必要ではないことが分かります。

質問:コンテナの外からドッカーコマンドを実行しているときに、どのようにしてvm内のディレクトリをコンテナにマウントできますか?

例をさらに明確にする:

1)古いアプローチ。 sshをvboxに入れて実行する。

docker run -i -t --net=try-net \ 
--name XXXX \ 
-v ${PWD}/xxxx/yyyy.py:/zzzzz/xxxx/yyyy.py \ 
-d me/image 

2)ドッカーマシンアプローチ。私はドッカーマシンenvをボックスに切り替えます。今、vbox内のフォルダをボックスの外から参照するにはどうすればよいですか?これも可能ですか?シェルのようなLinuxでの私の勝利のホストから

docker run -v /c/x/y/z:/home --name postgres3 -d postgres:9.5 

は私を取得します。

C:\プログラムファイル\ドッカー\ドッカー\リソース\ビン\のdocker.exe:デーモンからのエラー応答:無効なバインドマウントの仕様 "C:¥x¥y¥z¥; C:¥Program Files(x86)¥Git¥home":無効なモード:¥Program Files(x86)¥Git¥home。

+0

そのボリュームパラメータ 'c:\ x \ y \ z \; C:\ Program Files(x86)\ Git \ home'は入力したものではありません。それは、シェルがウィンドウのパスのように見えるようにパスを掘り下げた後、コロンをセミコロンに変更したようです。一重引用符で引用したり別のシェルを使ったりしてみましたか? – BMitch

+0

gitbashを使って、それを得ました。 CanonicalをWindowsで使用した場合、私はこのナグに出くわしました。https://github.com/docker/machine/issues/3719-.- –

答えて

1

docker-toolboxインストールを使用してコンテナをスピンアップすると、VMはホストから/ UsersフォルダをVMに共有するように事前設定されており、コンテナで使用できるようになります。

独自のバージュインストールで手動で行っているので、自分でフォルダを共有する必要があります。 This questionは、親OSからDockerマシンでスピンアップするDockerコンテナで使用できるVMにフォルダを共有する手順を順を追って説明します。


編集:親OSがVMを同期させた状態で、VM内で実行するすべてのコンテナはボリュームをマウントするだけです。 Docker-machineは実際には要素ではなく、単にドッカーCLIを選択したドッカーホストに向けるだけです。ドッカーのCLIは次のようになります:

+0

悲しいことに、その回答は、ホストからの迷惑メールボックスへのフォルダの同期方法のみを説明しています)。私はバグのボックスからドッカーのコンテナにこれらのフォルダを同期しようとしていますが、そのすべては私のホストからドッカーのマシンを介して発生する必要があります。 –

+0

私の謝罪は、あなたの質問がどこにあるのか分からなかった。ファイルがVMに同期されたら、VMパスを使用してファイルをコンテナ内にマウントできます。上記の私の編集を参照してください。 – BMitch

+0

私たちはもっと近づいています:)それは私が心に留めていたものですが、私が準備したときには、ただエンジンをバゲントボックスの中に入れているようです。同様に、内部からドッカーを実行することはできませんが、envをドッカーマシンでボックス自体に切り替えた後、ローカルホストからドッカーを実行できます。私は: 'docker-machine.exe env vbox' ' docker run -net = my-net -name postgres -d postgres:9.5' 私のホストからvbox内のコンテナを効果的にスピンアップします。理想的には、上記のdockerコマンドからvboxのフォルダをコンテナにマウントする方法が必要です(私のボックス上で再度実行されます) –

関連する問題