2015-06-02 30 views
5

我正在做服务器端开发,我的工作空间位于D:因为我不是将数据存储在C上的粉丝:但是找不到将d:\ Workspace映射到/ home/workspace的方法如何将C: Users外的卷映射到Windows上的容器?

我试图创建从C symblink:\ Users \用户名到d:\工作区由:

  1. 地图C:\ Users \用户名\工作区到/ home /工作区
  2. 停止容器
  3. 重命名C:\ Users \ username \工作区
  4. 将名为Workspace的符号链接创建为D :\直到我重新启动Boot2Docker,然后启动容器我会得到该届会议期间的工作区
  5. 开始容器

在第一码头工人工作得很好“C:\ Users \用户名\工作区文件存在”。

我认为这是一个Docker的问题,但无论如何我想映射到C:\ Users之外。主机和Boot2Docker虚拟机 $ boot2docker down $ cd "C:\Program Files\Oracle\VirtualBox" $ VBoxManage sharedfolder add boot2docker-vm --name mydata --hostpath "D:\Workspace" $ boot2docker up

  • 之间

  • 回答

    5
    • 共享工作空间安装的共享文件夹 $ boot2docker ssh 'sudo mkdir -p /data' $ boot2docker ssh 'sudo mount -t vboxsf -o "defaults,uid=33,gid=33,rw" mydata /data'

    • 仅创建数据容器。 Docker最佳实践alwaysrecommends您使用仅限数据的容器。您可以重用已有的唯一数据容器: $ docker run --volume /data:/data --name mydata dylanlindgren/docker-laravel-data

    • 如果你想这种变化是永久性的,你需要最后一个命令里面添加启动配置文件/var/lib/boot2docker/bootlocal.sh sleep 10 && sudo mount -t vboxsf -o "defaults,uid=33,gid=33,rw" mydata /data docker start mydata

    然后,你将不得不安装工作区在/数据

    可以在Boot2Docker here找到VirtualBox的客户添置更多的文档。

    +0

    我得到这个错误:mount.vboxsf:安装失败,出现错误:协议错误 mount:在/ data上挂载mydata失败:协议错误 – deathemperor

    +1

    我添加了关于创建仅数据容器的第一步。我在前面的答案中省略了这一步。 – dmoreno

    +0

    避免“协议错误”,重试VBoxManage命令。确保此命令运行时没有错误。 – dmoreno

    4

    现在更新了答案,因为boot2docker已被弃用。 Docker-machine现在可以实现同样的效果。

    答案就在这里描述:https://github.com/docker/machine/issues/1814

    基本上,在虚拟盒UI安装共享文件夹后,你需要在命令提示符中运行以下命令:

    # Note the extra/at the beginning of the path because of msys/MinGW. 
    docker-machine.exe ssh default 'sudo mkdir --parents //e/Documents/workspace' 
    docker-machine.exe ssh default 'sudo mount -t vboxsf e/Documents/workspace //e/Documents/workspace' 
    
    +0

    在StackOverflow规则下,您不仅应该提供完成手头任务的步骤,还要解释每一行以及为什么要让他们这样做。回答差,5/10 –

    相关问题