【问题标题】:Docker for Windows : volumes are emptyDocker for Windows:卷为空
【发布时间】:2018-10-05 17:25:49
【问题描述】:

几周前我从 Windows 7 更新到 Windows 10:我使用 Docker Toolbox/Virtual Box 与 Docker 一起工作,我阅读了 Docker for Windows 被推荐(最新的应用程序),但让它工作对我来说很痛苦就像以前使用 Toolbox 一样。

我使用 hyperv 创建了一台 docker 机器并运行 docker hello-world works。

但是当涉及到使用卷时,会发生一个奇怪的行为:没有错误消息,容器工作正常但我的卷里面没有文件,我只有文件夹。

我曾经在使用共享驱动器时遇到问题,但我设法让它工作(通过 Docker for Win GUI)。

这是我尝试运行容器但不映射 Windows 文件(仅文件夹)的命令:

docker run -ti -v 文件夹/:数据/文件夹 alpine

我正在运行 Docker 版本 18.03.0-ce

有什么想法吗?如果我不清楚,请让我提供更多信息!谢谢

【问题讨论】:

  • 我不确定问题的根源,但由于我做了这些操作,它似乎已经解决了:>卸载 docker + 删除 docker env 变量 >卸载虚拟机 >删除 hyperv 机器 >重新安装最新的docker for windows > 将我的外部开关设置为私有 > 通过 GUI 共享驱动器此外,我的公司更新了他们方面的一些政策。我现在可以将卷从 Windows 主机挂载到 Docker 容器
  • 可能是巧合,我完全按照您尝试升级到 Windows 10 的方式以及所有可能的方式使其工作。没有运气!但我回到VirtualBox 而不是hyper-V 并尝试使用文件夹共享。它对我有用。请在此处参考我的答案:stackoverflow.com/a/53331648/2179456

标签: windows docker volumes


【解决方案1】:

首先确保您的驱动器是共享的(见下图)。

一个重要注意事项是,如果您更改 Windows 密码,那么您的共享驱动器将无法挂载。要解决此问题,只需取消共享并重新共享您的驱动器或按“重置凭据...”。

感谢 ctliv 在本次讨论中指出这一点: https://github.com/docker/for-win/issues/25

【讨论】:

  • 感谢保罗的回答。我已经尝试了您所说的所有方法,但它没有用:它真的开始工作了:卸载 docker + 删除 docker env 变量卸载虚拟盒删除 hyperv 机器重新安装最新的 docker for windows 通过 GUI 将我的外部开关设置为私有共享驱动器
  • 感谢您的回答。我只是想指出,在配置共享驱动器后,设置为使用 Microsoft 帐户登录也会导致此问题。
【解决方案2】:

就我而言,我尝试使用安装在 Windows 中的 docker 主机在 WSL1 中运行 docker 客户端。问题是 docker 主机看不到 WSL 文件系统 - 它只能看到 Windows 文件系统。因此,您只能在 Windows 文件系统中挂载文件夹,该文件系统使用以下路径格式:

$ docker run -v c:/source:/dest myImage

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2019-05-18
    • 2019-08-23
    • 1970-01-01
    • 2020-01-20
    相关资源
    最近更新 更多