带有hyper-v示例的Docker windows让我困惑???为什么阿尔卑斯山的例子不像我想象的那样有效?

带有hyper-v示例的Docker windows让我困惑???为什么阿尔卑斯山的例子不像我想象的那样有效?,docker,docker-compose,dockerfile,hyper-v,docker-machine,Docker,Docker Compose,Dockerfile,Hyper V,Docker Machine,我希望一位使用Windows的Docker专家能够读到这篇文章,因为我真的一点都不懂 我在我的Windows 10机器上安装了Docker,没有vmware,只有hyper-v,在我尝试从本地机器创建卷并在Linux容器中使用它们之前,一切都很好,这就是我的问题开始的时候 docker中有一个示例,用于尝试查看卷的工作方式: 我在我的用户目录中创建了一个目录和一个简单的文件,只是为了查看alpine容器中的一些内容 但是当我运行下面的命令时,我在steve/work目录中没有得到任何文件 afi

我希望一位使用Windows的Docker专家能够读到这篇文章,因为我真的一点都不懂

我在我的Windows 10机器上安装了Docker,没有vmware,只有hyper-v,在我尝试从本地机器创建卷并在Linux容器中使用它们之前,一切都很好,这就是我的问题开始的时候

docker中有一个示例,用于尝试查看卷的工作方式:

我在我的用户目录中创建了一个目录和一个简单的文件,只是为了查看alpine容器中的一些内容

但是当我运行下面的命令时,我在steve/work目录中没有得到任何文件

afile.txt究竟在哪里

对不起,如果我有点愚蠢,但是我在Linux机器上创建的卷没有任何问题,我就是不知道我的文件到底在哪里?如何在Windows计算机上进行开发并将源代码放入容器中,而无需将所有源文件的Dockerfile副本复制到容器中

只是为了让我更困惑!但是,当我执行相同的命令并查看steve文件夹时,我可以看到预期的工作文件夹,但我也看到一个名为work的文件夹?所以即使我删除了工作文件夹,它也在那里

我真的很困惑如何使用Hyper-V在Windows机器上创建卷

非常感谢。 另外,如果您有任何链接可以解释Windows Hyper-V Docker和Linux Docker之间的差异,我也将非常感谢,因为我找不到任何关于Windows与Hyper-V和VMWare的信息或文档


再次感谢…

我刚刚在VMWare Fusion虚拟机上运行了一个新的Windows 10 Enterprise副本,完成了相同的练习

你必须做的第一件事是打开docker设置应用程序,可以从你的应用程序托盘或Windows中的任何名称获得。然后选择共享,并共享您要浏览的驱动器。单击应用时,系统将提示您使用用户名密码对话框。输入该值,此处显示的示例将实际起作用。我设置了test.user,然后可以执行以下操作:

run-it-rm-vc:/Users:/data/data

不过还有一个警告。我是通过Office 365的业务帐户以域登录方式登录的。我的域名\用户名不起作用。相反,我必须创建一个本地windows用户并提供它。这无疑会给权限带来一些额外的麻烦,但似乎是目前唯一的选择。如果我在工作场所有联系的话,这可能会起作用,但由于我在家工作,下周将在一个会议上发言,我没有任何乐趣

解决了

经过数小时的研究和与Windows Docker的混战,我已经在我的Windows主机和Linux容器之间正确地共享了卷。这意味着我可以在容器中看到本地Windows计算机上存在的文件

我的研究让我找到了这个链接

一个叫“dennisfischer”的家伙给出了一个有效且完全有意义的答案,尽管论坛条目很长,但它很值得一读,以了解问题的背景,并了解Windows fs和容器之间的情况

无论如何,希望这能为你节省很多时间


p.S为Philip干杯,他真的很有帮助,谢谢你的留言,希望这会在某个时候对你有所帮助。

为Philip干杯,Philip我能问一下吗,我得到了我认为可以处理阿尔卑斯山图像的东西,但我只得到了显示steve的用户文件夹,但肯定在其中的文件却没有显示出来?无论如何,我已经向前推进了卷,而这些卷似乎如我所期望的那样工作。但我仍然无法运行Linux映像并查看包含Windows文件系统文件的文件夹?我看到了类似的情况。volume参数没有错误,但也没有显示任何文件。我必须先做共享设置,并提供凭据,然后它才能工作。然后,如果我试图映射我提供的本地用户无法访问的文件夹,我实际上会遇到一个有用的错误。你已经做过共享设置了吗?我知道这听起来有点愚蠢,但我想是的?当时我使用了docker task panel应用程序,并在我的机器上设置了驱动器级别C&D的共享,是的,我被要求提供必须正确的凭据,我说基于这些凭据是否正确,我没有得到任何确认,但如果我输入垃圾docker,我确实拒绝并再次要求提供凭据!但我从未见过Linux容器中有任何文件是通过run命令从本地计算机上获取的?只是出于兴趣,Philip,但是您能否运行say busybox的docker容器并使用“-v local:cont mount”从运行的busybox Linux容器中查看您的windows文件?如果凭据不正确,那么它将被删除一次又一次的提示。如果你
如果你回去,那些硬盘还在检查中,你应该会没事的。下面是我用来测试busybox问题docker run-it-rm-v C://:/data busybox ls/data的命令,它确实按预期工作。我选择C:\是因为这里不太可能存在权限问题。你也可以做docker run-it-rm-v C:/:/data busybox/bin/sh,自己到处看看。很高兴听到它对你有帮助!我花了整整两天的时间才找到答案,但至少现在这是一个有效的答案!