如何将C:\ Users外的卷映射到Windows上的容器?

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

我尝试创build一个从C:\ Users \用户名到D:\ Workspace的symblink:

  1. 将C:\ Users \ username \ Workspace映射到/ home / workspace
  2. 停止容器
  3. 重命名C:\ Users \ username \ Workspace
  4. 创build名为Workspace的符号链接到D:\ Workspace
  5. 启动容器

起初,Docker工作正常,直到我重新启动Boot2Docker,然后启动容器,我会得到“C:\用户\用户名\工作区文件存在”。

我认为这是一个Docker的问题,但无论如何我想映射到C:\ Users之外。

Solutions Collecting From Web of "如何将C:\ Users外的卷映射到Windows上的容器?"

  • 在主机和Boot2Docker虚拟机之间共享工作区$ boot2docker down $ cd "C:\Program Files\Oracle\VirtualBox" $ VBoxManage sharedfolder add boot2docker-vm --name mydata --hostpath "D:\Workspace" $ boot2docker up

  • 挂载共享文件夹$ boot2docker ssh 'sudo mkdir -p /data' $ boot2docker ssh 'sudo mount -t vboxsf -o "defaults,uid=33,gid=33,rw" mydata /data'

  • 创建只有数据的容器。 Docker最佳实践总是 建议您使用纯数据容器。 您可以重新使用已有的仅限数据的容器: $ 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

然后,您将在/ data处安装您的工作空间

在这里你可以在Boot2Docker中找到更多有关VirtualBox Guest Additions的文档。

现在更新了答案,因为boot2docker已被弃用。 码头机器现在也是如此。

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

基本上,在虚拟Box 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'