使用docker

时间:2017-02-21 11:22:57

标签: docker docker-compose hyper-v docker-machine

我正在尝试使用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:)

3 个答案:

答案 0 :(得分:0)

我认为你只需要从Docker应用程序设置中共享文件夹的卷(c :)。

请参阅getting started guide

中的“共享硬盘”段落

我正在使用具有类似配置的已装入文件夹,并且在共享驱动器后它可以正常工作。

答案 1 :(得分:0)

您应该使用/ c / Users,使用大写" C"。

答案 2 :(得分:0)

看起来很愚蠢,这经常发生在我身上。解决方案是取消选中“ Docker for Windows”中的C驱动器->“设置”->“共享驱动器”,应用并使用apply再次检查。