我整天都在尝试完成一个简单的示例,将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容器。
答案 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