我正在尝试使用docker for windows(win 10 pro)上的hyperv驱动程序将一个卷从C:/ Users挂载到一个在docker-machine上运行的容器中。我是使用最新的docker(1.13.1)和hyper vm机器上的相同。我尝试过切换到使用本地帐户,在docker设置菜单中共享驱动器,而且我已经尝试了很多我可以在google上找到的内容。
在设置菜单中运行测试卷运行命令对我有用。在这个时候,我认为hyperv不支持从主机安装卷,但是我无法找到任何明确说明卷安装在hyperv中不起作用的地方。
这是我的docker-compose配置:
networks: {}
services:
app:
build:
context: C:\users\deep\projects\chat\app
command: sleep 3600
image: app
links:
- rethinkdb
- redis
ports:
- 4005:4005
- 4007:4007
volumes:
- /c/users/deep/projects/chat/app:/usr/src/app:rw
redis:
image: redis
rethinkdb:
image: rethinkdb:2.3.5
version: '2.0'
volumes: {}
在我的Dockerfile中,我可以看到将文件复制到容器中usr/src/app
。当我up
具有在compose文件中指定的卷的服务时,该目录被清空,但是我省略了这个卷mount我可以看到我从dockerfile复制到容器中的文件。
启动服务时运行详细信息我可以看到指定为'Binds': [u'/c/users/deep/projects/chat/app:/usr/src/app:rw']
的卷路径。但是,当我使用docker-compose inspect app
检查容器时,我看到卷设置为空"Volumes": null
。
我认为此时不支持将卷装入hyperv VM内部运行的容器中?有人可以确认我可以RIP:)
答案 0 :(得分:0)
我认为你只需要从Docker应用程序设置中共享文件夹的卷(c :)。
中的“共享硬盘”段落我正在使用具有类似配置的已装入文件夹,并且在共享驱动器后它可以正常工作。
答案 1 :(得分:0)
您应该使用/ c / Users,使用大写" C"。
答案 2 :(得分:0)
看起来很愚蠢,这经常发生在我身上。解决方案是取消选中“ Docker for Windows”中的C驱动器->“设置”->“共享驱动器”,应用并使用apply再次检查。