将Windows目录共享到Linux Docker容器

时间:2019-01-12 22:36:30

标签: docker

我整天都在尝试完成一个简单的示例,将Windows目录共享给运行在Windows Docker主机上的Linux容器。 阅读所有指南并运行以下命令:

docker run -it --rm -p 5002:80 --name mount-test --mount type=bind,source=D:\DockerArea\PortScanner,target=/app/PortScannerWorkingDirectory barebonewebapi:latest

主机上的原始PortScanner目录中有一些文本文件。容器创建成功。 问题是,当我尝试

docker exec -it mount-test /bin/bash 

,然后在容器PortScannerWorkingDirectory中列出已安装的目录-它仅显示它为空。 C#代码也无法读取映射目录中主机文件的内容。 我在这里缺少简单的东西吗?我感觉好像被卡住了,无法将Windows主机上的文件共享到Linux容器。

2 个答案:

答案 0 :(得分:1)

在处理了几天的问题后,我找到了很明显的答案。尽管我已经在Docker设置中将C和D驱动器共享给Docker,但我进行了一次实验,并重新共享了两个驱动器(在Windows的Docker代理设置中,有一个特殊的按钮“ Reset Credentials”)。之后,问题解决了。因此将其保存在此处,希望对其他人有所帮助,因为这似乎是权限或类似问题的小故障。 这个问题很难诊断-当出现问题时,Docker容器只是默默地写入其可写层,而不会弹出错误。

答案 1 :(得分:0)

转到docker settings -> shared drives -> reset credentials。 然后单击驱动器,然后单击“应用”按钮。

然后按照docker的建议执行以下命令

docker run --rm -v c:/Users:/data alpine ls /data