【问题标题】:Docker windows with hyper-v example baffles me??? Why does the alpine example not work they way I thought it would?带有 hyper-v 示例的 Docker 窗口让我感到困惑???为什么阿尔卑斯山的例子不能像我想象的那样工作?
【发布时间】:2016-08-04 15:18:57
【问题描述】:

我希望使用 Windows 的 Docker 专家能够阅读这篇文章,因为我真的完全不明白。

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

在 docker 中是一个尝试查看卷如何工作的示例:

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

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

afile.txt 到底在哪里???

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

只是为了进一步混淆(可能是我自己!)但是当我执行相同的命令并只查看 steve 文件夹时,我可以看到预期的工作文件夹,但我也看到了一个名为 work#?所以工作文件夹就在那里(即使我删除它???)

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

提前非常感谢。 P.S 如果您有任何链接可以实际解释 Windows Hyper-V Docker 和 Linux Docker 之间的差异,我也将非常感激,因为我找不到任何或文档将有关 Windows 的信息与 Hyper-V 和 VMWare 混合在一起。

再次感谢...

【问题讨论】:

    标签: docker docker-compose dockerfile hyper-v docker-machine


    【解决方案1】:

    已解决!

    经过数小时的研究和使用 Windows Docker 后,我的 Windows 主机和 Linux 容器之间的卷共享正确。这意味着我可以看到存在于本地 Windows 机器上的容器中的文件。

    我的研究让我找到了这个链接THE ANSWER AND TONS OF GREAT INFO ON THIS PROBLEM

    一个叫'dennisfischer'的人给出了有效且完全有意义的答案,尽管论坛条目很长,但值得一读以了解问题的背景并了解Windows fs之间发生的事情和容器。

    无论如何,希望这可以为您节省大量时间!

    P.S 向非常有帮助的 Philip 干杯,感谢您的信息,希望这对您有所帮助。

    【讨论】:

    • 很高兴听到它对您有所帮助!我花了整整两天的时间才找到它,但至少现在这是一个可行的答案!
    【解决方案2】:

    我刚刚使用在 VMWare Fusion 虚拟机中运行的 Windows 10 Enterprise 的新副本进行了相同的练习。

    您必须做的第一件事是打开 docker 设置应用程序,该应用程序可从您的应用程序托盘(或 Windows 中的任何名称)中获得。然后选择共享并共享您想要探索的驱动器。单击应用时,系统将提示您输入用户名密码对话框。输入它,那里显示的示例将真正起作用。我设置了 test.user 然后能够做到:

    run -it --rm -v C:/Users:/data alpine ls /data

    还有一个警告。我通过 Office 365 通过企业帐户使用域登录名登录。我的域名\用户名不起作用。相反,我必须创建一个本地 Windows 用户并提供它。毫无疑问,这会导致一些额外的权限问题,但似乎是目前唯一的选择。有可能如果我在工作场所保持联系,这可能会奏效,但由于我在家工作并且下周将在会议上发言,这对我来说并不快乐!

    【讨论】:

    • 干杯 Philip 我可以问一下,我得到了我认为正在使用 alpine 图像的东西,但我只显示了我的用户文件夹(史蒂夫),但肯定在它们中的文件只是不要'不显示?无论如何,我已经推进了体积,而不是看起来像我预期的那样工作。但我仍然无法运行 Linux 映像并查看包含 Windows 文件系统文件的文件夹?
    • 我看到了类似的东西。音量参数没有错误,但也没有文件显示。我必须先进行共享设置,并提供凭据,然后它才能工作。如果我随后尝试映射我提供的本地用户无权访问的文件夹,我实际上得到了一个有用的错误。您是否已经完成了共享设置?
    • 嗯,我知道这听起来有点笨拙,但我认为是这样?我当时使用了 docker 任务面板应用程序并在我的机器上的驱动器级别 C 和 D 设置共享,是的,我被要求提供必须正确的凭据(我说基于它们是否正确我没有得到确认,但如果我输入 rubbish docker 确实拒绝并再次要求提供凭据!)但我从未见过 Linux 容器中的任何文件 - 使用 run 命令从本地机器 v'ed?
    • 只是出于兴趣,Philip 但是您可以运行一个说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 和自己闲逛。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多