Docker for Windows:卷为空

6
我几周前从Windows 7升级到了Windows 10。过去,我使用Docker Toolbox/Virtual Box来处理Docker,但现在推荐使用Docker for Windows(最新应用程序)。但是让我困扰的是,我很难像使用Toolbox一样让它正常工作。
我使用hyperv创建了一个docker机器,并成功运行了hello-world。
但是当使用数据卷时,出现了奇怪的行为:没有错误消息,容器完美运行,但我的数据卷中没有文件,只有文件夹。
过去我曾经遇到过共享驱动器的问题,但我终于通过Docker for Win GUI解决了这个问题。
以下是我尝试的命令,它可以运行容器,但无法映射Windows文件(仅文件夹):
docker run -ti -v folders/:data/folder alpine 我正在运行Docker版本18.03.0-ce。
有什么想法吗?如果不清楚,请告诉我更多信息!谢谢!

我不确定问题的根源,但自从我执行了以下操作后,似乎已经解决了:
卸载Docker + 删除Docker环境变量 卸载虚拟机 删除Hyperv虚拟机 重新安装最新的Windows Docker 将我的外部交换机设置为私有 通过GUI共享驱动器 此外,我的公司在他们的一侧更新了一些策略。 现在我能够从Windows主机挂载卷到Docker容器中。
- Marien
可能是巧合,我做了和你一样的尝试升级到Windows 10,并尝试了所有可能的方法使其工作。没有成功!但是我回到了VirtualBox而不是hyper-V,并尝试使用文件夹共享。这对我有用。请参考我的答案:https://stackoverflow.com/a/53331648/2179456 - Bala
2个回答

14

首先确保您的驱动器已共享(如下图所示)。

一个重要的提示是,如果您更改了Windows密码,则无法挂载共享驱动器。要解决此问题,请简单地取消共享和重新共享您的驱动器,或按“重置凭据...”按钮。

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

输入图片说明


感谢Paul的回答。我尝试了你说的所有方法,但都没有起作用。真正开始工作的方法是: 卸载Docker + 删除Docker环境变量 卸载虚拟机 删除Hyperv虚拟机 重新安装最新的Windows Docker 将我的外部交换机设置为私有 通过GUI共享驱动器。 - Marien
1
谢谢你的回答。我只想指出,在配置共享驱动器后,设置使用Microsoft帐户登录也会导致这种情况发生。 - Gokhan Sari

1
在我的情况下,我尝试在WSL1中运行Docker客户端,使用安装在Windows上的Docker主机。问题是Docker主机看不到WSL文件系统 - 它只能看到Windows文件系统。因此,您只能挂载Windows文件系统中的文件夹,它使用以下路径格式:
$ docker run -v c:/source:/dest myImage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接