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

dea*_*ror 5 windows mount docker

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

我尝试通过以下方式创建从C:\ Users\username到D:\ Workspace的symblink:

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

起初Docker在该会话期间工作正常,直到我重新启动Boot2Docker,然后启动容器我得到"C:\ Users\username\Workspace file exists".

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

dmo*_*eno 5

  • 在主机和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的更多文档.