シンプルな--volume
コマンドでDocker Toolboxを使用しますか?
「Docker Quickstart Terminal」を使用していますが、これを試してみると:
winpty docker run -it --rm --volume /C/Users/myuser:/myuser ubuntu
私はこのエラーがあります:
Invalid value "C:\\Users\\myuser\\:\\myuser" for flag --volume: bad mount mode specified : \myuser
See 'docker run --help'.
this に続いて、私も試しました
winpty docker run -it --rm --volume "//C/Users/myuser:/myuser" ubuntu
そして得た
Invalid value "\\\\C:\\Users\\myuser\\:\\myuser" for flag --volume: \myuser is not an absolute path
See 'docker run --help'.
これは実際には プロジェクトの問題 であり、2つの回避策があります。
データボリュームの作成:
docker create -v //c/Users/myuser:/myuser --name data hello-world
winpty docker run -it --rm --volumes-from data ubuntu
Dockerホストで直接SSHする:
docker-machine ssh default
そしてそこから古典をやっています:
docker run -it --rm --volume /c/Users/myuser:/myuser ubuntu
これは選択された回答の改善です。その回答はc:\ Usersフォルダーに制限されているためです。 c:\ Users以外のディレクトリを使用してボリュームを作成する場合、これは拡張機能です。
Windows 7では、Dockerツールボックスを使用しました。 Virtual Boxを使用しました。
たとえば、私の場合、次のものを含めました。
**Name**: c:\dev
**Path**: c/dev
次のコマンドを使用します。
$ docker-machine restart
動作したことを確認するには、次の手順に従います。
このコマンドの使用:
$ docker-machine ssh
私の場合、このコマンドを使用します
$ cd /c/dev
次のようなものが表示されます。
docker@default:/c/dev$ ls -all
total 92
drwxrwxrwx 1 docker staff 4096 Feb 23 14:16 ./
drwxr-xr-x 4 root root 80 Feb 24 09:01 ../
drwxrwxrwx 1 docker staff 4096 Jan 16 09:28 my_folder/
その場合、そのフォルダーのボリュームを作成できます。
次のコマンドを使用できます。
docker create -v /c/dev/:/app/dev --name dev image
docker run -d -it --volumes-from dev image
または
docker run -d -it -v /c/dev/:/app/dev image
どちらのコマンドも機能します。これが役に立つことを願っています。
2016年8月の時点で、Docker for Windowsはvirtualboxではなくhyper-vを直接使用するようになったため、少し異なっていると思います。最初に設定でドライブを共有してから、C:
ドライブ文字形式を使用しますが、スラッシュを使用します。たとえば、私はH:\t\REDIS
ディレクトリを作成し、このコマンドでコンテナの/data
にマウントされているのを確認できました。
docker run -it --rm -v h:/t/REDIS:/data redis sh
ドライブ文字とコロンを使用した同じ形式で、パス区切り文字にスラッシュを使用すると、Windowsコマンドプロンプトとgit bashの両方で機能します。
私はこの質問をグーグルで答えを見つけましたが、うまくいくものは見つかりませんでした。エラーはスローされずに動作するように見えますが、ホスト上のデータを見ることができませんでした(またはその逆)。最後に、設定を詳細にチェックアウトし、表示される形式を試しました。
最初に、ここでの設定でドライブ全体をdocker vmと共有する必要があります。これにより、hyper-vで実行されている「docker-machine」vmがそのドライブにアクセスできるようになります。次に、そこに示されている形式を使用する必要があります。この形式は、この1つのイメージにのみ存在し、Webで見つけることができるドキュメントや質問はありません。
docker run --rm -v c:/Users:/data Alpine ls /data
すべてのWindowsの問題を解決し、Linuxと同じようにWindows OSで動作させるソリューションを探している場合は、以下を参照してください。これをテストしましたが、すべてのケースで機能します。どうやってそれを手に入れるかを示しています(ステップと思考プロセス)。 Dockerの使用とドッカーの問題への対処に関する記事もここに書いています。
$ cd ~
_を実行して、Windowsユーザーディレクトリにいることを確認します。$ docker run -it -v /$(pwd)/ubuntu:/windows ubuntu
エラーがタイプミスによるものであれば機能します。ユーザーディレクトリにubuntu
という名前の空のフォルダーが作成されます。 ubuntuコンテナーにwindows
という名前のこのフォルダーが表示されます。
Virtual Boxを使用する場合command-lineアプローチを好む人
1)docker-machineが実行されていないことを確認してください
Dockerクイックスタートターミナル:
docker-machine stop
2)共有Windows <-> docker-machineを作成します
Windowsコマンドプロンプト:
。
set VBOX=D:\Program Files\Oracle\VirtualBox\VBoxManage.exe
set VM_NAME=default
set NAME=c/htdocs
set HOSTPATH=%DROPBOX%\htdocs
"%VBOX%" sharedfolder add "%VM_NAME%" --name "%NAME%" --hostpath "%HOSTPATH%" --automount
)docker-machineを起動し、ボリュームを新しいコンテナーにマウントします
Dockerクイックスタートターミナル:
(繰り返しますが、Apache httpdコンテナーを開始しています。そのため、このポートが公開されています。)
docker-machine start
docker run -d --name my-Apache-container-0 -p 80:80 -v /c/htdocs:/usr/local/Apache2/htdocs my-Apache-image:1.0
Windows 7では、先頭に2つのスラッシュを使用するだけでうまくいきました。
docker run --rm -v //c/Users:/data Alpine ls /data/
フォルダーvirtualBoxツールボックスとWindows 7およびnodejsイメージコンテナーを共有する
使用... Dockerクイックスタートターミナル[QST] Windowsエクスプローラー[WE]
始めましょう...
[QST] Dockerクイックスタートターミナルを開く
[QST]仮想マシンを停止
$ docker-machine stop
[WE] Windowsエクスプローラーを開きます
[WE] virtualBoxインストールディレクトリに移動します
[WE] cmdを開いて実行します...
C:\ Program Files\Oracle\VirtualBox> VBoxManage sharedfolder add "default" --name "/ d/SVN_FOLDERS/X2R2_WP6/nodejs" --hostpath "\?\ d:\ SVN_FOLDERS\X2R2_WP6\nodejs" --automount
oracle仮想マシンをチェックインして、新しい共有フォルダーが表示されたことを確認します
[QST]仮想マシンを起動
$ docker-machine start
docker stop nodejs
docker rm nodejs
docker run -d -it --rm --name nodejs -v/d/SVN_FOLDERS/X2R2_WP6/nodejs:/ usr/src/app -w/usr/src/app node2
docker exec -i -t nodejs/bin/bash
解決しました!
ボリュームを追加します。
docker run -d -v my-named-volume:C:\ MyNamedVolume testimage:latest
ホストディレクトリをマウントします。
docker run -d -v C:\ Temp\123:C:\ My\Shared\Dir testimage:latest