如何将 C:\Users 之外的卷映射到 Windows 上的容器?
How do I map volume outside C:\Users to container on Windows?
我正在进行服务器端开发,我的工作区位于 D:,因为我不喜欢在 C: 上存储数据,但就是找不到将 d:\Workspace 映射到 /home/workspace
我尝试通过以下方式创建从 C:\Users\username 到 D:\Workspace 的符号链接:
- 将 C:\Users\username\Workspace 映射到 /home/workspace
- 停止容器
- 重命名 C:\Users\username\Workspace
- 将名为 Workspace 的符号链接创建到 D:\Workspace
- 启动容器
起初 Docker 在那个会话期间工作正常,直到我重新启动 Boot2Docker,然后启动我得到的容器 "C:\Users\username\Workspace file exists"。
我认为这是一个 Docker 的问题,但无论如何我想映射到 C:\Users 之外。
在主机和 Boot2 之间共享工作空间Docker 虚拟机
$ 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 最佳实践 always recommends 您使用纯数据容器。您可以重用已经可用的纯数据容器:
$ 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
您可以在 Boot2 中找到有关 VirtualBox Guest Additions 的更多文档Docker here。
现在更新了答案,因为 boot2docker 已被弃用。
现在用 docker-machine.
也能达到同样的效果
这里描述了答案:https://github.com/docker/machine/issues/1814
基本上,在 Virtual 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'
我正在进行服务器端开发,我的工作区位于 D:,因为我不喜欢在 C: 上存储数据,但就是找不到将 d:\Workspace 映射到 /home/workspace
我尝试通过以下方式创建从 C:\Users\username 到 D:\Workspace 的符号链接:
- 将 C:\Users\username\Workspace 映射到 /home/workspace
- 停止容器
- 重命名 C:\Users\username\Workspace
- 将名为 Workspace 的符号链接创建到 D:\Workspace
- 启动容器
起初 Docker 在那个会话期间工作正常,直到我重新启动 Boot2Docker,然后启动我得到的容器 "C:\Users\username\Workspace file exists"。
我认为这是一个 Docker 的问题,但无论如何我想映射到 C:\Users 之外。
在主机和 Boot2 之间共享工作空间Docker 虚拟机
$ 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 最佳实践 always recommends 您使用纯数据容器。您可以重用已经可用的纯数据容器:
$ 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
您可以在 Boot2 中找到有关 VirtualBox Guest Additions 的更多文档Docker here。
现在更新了答案,因为 boot2docker 已被弃用。 现在用 docker-machine.
也能达到同样的效果这里描述了答案:https://github.com/docker/machine/issues/1814
基本上,在 Virtual 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'