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


17

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ドッカーコンテナーへのボリュームのマウントは正常に機能しますが、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

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

ここに画像の説明を入力してください

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

回答:


22

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

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

コピーまたは追加コマンドでフォルダーを作成した場合、これは機能しません。
スティーブコールマン

ホストディレクトリも相対的な「./」にすることができ、ゲストの内部OSはLinuxタイプのOSになる可能性があります/ www /
html`

7

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.