web-dev-qa-db-ja.com

Docker / Windows Container:Windows 2016でホストフォルダーをデータボリュームとしてマウントする方法

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のドキュメントに従って必要です。

ドキュメントによると、コマンドは私には正しいようです。

enter image description here

(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

しかし、私もそこに問題を抱えています。

enter image description here

最終的に関連するトピック:

17
Mathias Conradt

Windowsでは、パスはWindowsスタイルのセマンティクスを使用して指定する必要があります。 パスの前にスラッシュを使用しないでください。

docker run -v c:\Users\[path]:c:\[containerPath]
23
Mathias Conradt

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
7
Der_Meister

Macマシンからdocker CLIを実行していて、Windowsコンテナーを実行しようとしていますか?もしそうなら、私はあなたがDOCKER_Host env var setおよびデーモンがWindowsマシンで実行されています(Windows以外のOSではWindowsコンテナーを実行できないため)。

その場合、コンテナーにマウントしようとしているディレクトリは、Docker CLIを実行しているマシンではなく、Dockerホスト上のディレクトリである必要があります。したがって、コロンの両側でWindows形式を使用できます。 Macに存在するディレクトリをマウントしようとしている場合、まだその部分はわかりませんが、自分で確認する必要があります:)

0
menehune23