无法将卷标志与Windows容器一起使用

wtj*_*nes 2 docker docker-volume docker-for-windows

我试图将主机文件夹映射到guest虚拟机,方法与在linux/mac上轻松完成相同-v "$(pwd)":/code.我无法想出一个简单的例子来使用Windows Containers.

docker build -t="webdav" .
docker run --rm -it -v C:\junk:C:\code --name webdav webdav powershell


C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: container f0fa313478fddb73e34d47699de0fc3c2a3bdb202ddcfc2a124c5c8b7523ec09 encountered an error during Start: failure in a Windows system call: The connection with the Virtual Machine hosting the container was closed. (0xc037010a).
Run Code Online (Sandbox Code Playgroud)

我尝试了无数其他变化,这里接受的答案给出了同样的错误.

文档似乎只指泊坞工具箱.这个例子只给了我invalid bind mount spec.

我的Dockerfile

FROM microsoft/windowsservercore

RUN powershell -Command Add-WindowsFeature Web-Server

RUN powershell -Command mkdir /code

WORKDIR /code
ADD * /code/
Run Code Online (Sandbox Code Playgroud)

操作系统名称:Microsoft Windows 10 Pro OS版本:10.0.14393 N/A Build 14393

版本17.03.1-ce-win5(10743)频道:稳定b18e2a5

免责声明:我最初在docker论坛上发布了这个,但没有任何回复.

Myl*_*ing 5

编辑:找到它. https://docs.docker.com/engine/reference/builder/#volume "使用基于Windows的容器时,容器中卷的目标必须是以下之一:不存在或空目录;或驱动器除了C:"

或者在这里:https://docs.docker.com/engine/reference/commandline/run/#mount-volume--v---read-only "使用基于Windows的容器时,以下示例将失败,作为目标容器内的卷或绑定装置必须是以下之一:不存在或空目录;或C:以外的驱动器.此外,绑定装载的源必须是本地目录,而不是文件."

令我感到震惊的是,这些是记录这种差异的非显而易见的地方.您在哪里查找此问题的文档?我会在那里添加:)

是否一般需要总结Linux和Windows之间的差异?

OLD ANSWER(上下文)以下是使用GUI安装卷的分步指南:https: //rominirani.com/docker-on-windows-mounting-host-directories-d96f3f056a2c

通过阅读其他一些论坛帖子,听起来像密码中的特殊字符可能会绊倒.

如果您仍然遇到问题,可以通读一个主题:https: //github.com/docker/docker/issues/23992

希望这可以帮助!