Mat*_*adt 17 mount windows-server docker windows-server-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]:/[容器路径] ...`
我试过:
docker run --name iisdemo2 -it -p 80:80 -v /c/Users/mlin/meinedaten:/meinedaten iis cmd
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误:
docker : docker: Error response from daemon: Invalid bind mount spec "/c/Users/mlin/meinedaten:/meinedaten": volumeinvalid: Invalid volume specification:
'/c/Users/mlin/meinedaten:/meinedaten'.
Run Code Online (Sandbox Code Playgroud)
我也试过:
docker run --name iisdemo2 -it -p 80:80 -v /c/Users/mlin/meinedaten:/c/meinedaten iis cmd
Run Code Online (Sandbox Code Playgroud)
请注意,来宾/容器上的路径 C:\meinedaten 已经存在,这是根据 docker 文档所必需的。
根据文档,该命令对我来说是正确的。
(将卷从 Mac OS X 主机安装到 Ubuntu docker 容器工作正常,我只是在使用 Windows 时遇到问题。)
更新
我也只是尝试在本地使用 Windows 容器(通过 Powershell),而不是使用 Docker。我遵循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
Run Code Online (Sandbox Code Playgroud)
但我也遇到了问题。
最终相关主题:
Mat*_*adt 29
在 Windows 上,必须使用 Windows 风格的语义指定路径。您不应在路径前使用前导斜线。
docker run -v c:\Users\[path]:c:\[containerPath]
Run Code Online (Sandbox Code Playgroud)
Windows 10 周年更新和 Windows Server 2016 RTM。
添加卷:
docker run -d -v my-named-volume:C:\MyNamedVolume testimage:latest
Run Code Online (Sandbox Code Playgroud)
挂载主机目录:
docker run -d -v C:\Temp\123:C:\My\Shared\Dir testimage:latest
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43339 次 |
| 最近记录: |