WindowsホストからWindowsゲストシステムにボリュームをマウントする方法
私はDockerを使用してWindows Server 2016 TP4を使用しています。
https://docs.docker.com/engine/userguide/containers/dockervolumes/ のドキュメントに従う
MacまたはWindowsでDocker Machineを使用している場合、DockerデーモンはOS XまたはWindowsファイルシステムへのアクセスを制限されています。 Docker Machineは/ Users(OS X)またはC:\ Users(Windows)ディレクトリを自動共有しようとします。したがって、OS Xでファイルまたはディレクトリをマウントできます。
Windowsでは、次を使用してディレクトリをマウントします。
docker run -v/c/Users/[path]:/ [container path] ... `
私は試した:
docker run --name iisdemo2 -it -p 80:80 -v /c/Users/mlin/meinedaten:/meinedaten iis cmd
これは私にエラーを与えます:
docker : docker: Error response from daemon: Invalid bind mount spec "/c/Users/mlin/meinedaten:/meinedaten": volumeinvalid: Invalid volume specification:
'/c/Users/mlin/meinedaten:/meinedaten'.
私も試しました:
docker run --name iisdemo2 -it -p 80:80 -v /c/Users/mlin/meinedaten:/c/meinedaten iis cmd
ゲスト/コンテナーのパスC:\ meinedatenはすでに存在していることに注意してください。これは、Dockerのドキュメントに従って必要です。
ドキュメントによると、コマンドは私には正しいようです。
(Mac OS XホストからUbuntu Dockerコンテナーへのボリュームのマウントは正常に機能しますが、Windowsで問題が発生しています。)
更新
また、Dockerを使用せずに、Windows PowerShellをネイティブに(Powershell経由で)使用しようとしました。 https://msdn.Microsoft.com/en-us/virtualization/windowscontainers/quick_start/manage_powershell#create-a-shared-folder のドキュメントに従います。
Add-ContainerSharedFolder -ContainerName mysql2 -SourcePath C:\Users\mlin\meinedaten -DestinationPath C:\meinedaten
しかし、私もそこに問題を抱えています。
最終的に関連するトピック:
Windowsでは、パスはWindowsスタイルのセマンティクスを使用して指定する必要があります。 パスの前にスラッシュを使用しないでください。
docker run -v c:\Users\[path]:c:\[containerPath]
Windows 10 Anniversary UpdateおよびWindows Server 2016 RTM。
ボリュームを追加します。
docker run -d -v my-named-volume:C:\MyNamedVolume testimage:latest
ホストディレクトリをマウントします。
docker run -d -v C:\Temp\123:C:\My\Shared\Dir testimage:latest
Macマシンからdocker CLIを実行していて、Windowsコンテナーを実行しようとしていますか?もしそうなら、私はあなたがDOCKER_Host
env var setおよびデーモンがWindowsマシンで実行されています(Windows以外のOSではWindowsコンテナーを実行できないため)。
その場合、コンテナーにマウントしようとしているディレクトリは、Docker CLIを実行しているマシンではなく、Dockerホスト上のディレクトリである必要があります。したがって、コロンの両側でWindows形式を使用できます。 Macに存在するディレクトリをマウントしようとしている場合、まだその部分はわかりませんが、自分で確認する必要があります:)