使用 Docker Windows 客户端,如何与 Docker 容器共享除 C:\Users\ 以外的 Windows 文件夹?

4
使用Docker客户端,是否有一种方法可以在Windows中与Docker容器共享文件夹,而无需先通过Virtual Box VM共享文件夹。
已经理解了从thisthis需要有双斜杠的需求。
从Docker客户端为Windows运行了以下命令。
docker run -it -v //F/devfolder:/development/windev <imagename> <cmdname>

但是当我在/development/windev目录下执行ls命令时,结果为空。
我尝试使用以下命令挂载c/Users/username文件夹时,并没有遇到任何问题。
docker run -it -v //c/Users/username/desktop:/development/windev <image> <command>

而且 windev 文件夹列出的内容和我希望的一样。

尝试通过 Virtualbox GUI 共享 F/devFolder 并授予完全访问权限,但仍无法列出文件夹的内容。

[我没有使用 boot2docker,而是使用 docker-machine]

除了 c/Users/ 文件夹外,是否不能共享其他文件夹?如果可以,还需要做其他什么以确保我能看到挂载文件夹的内容?

1个回答

3

你不仅需要在VirtualBox中安装它,而且还需要在boot2docker TinyCore会话中指示你想要看到该文件夹 (具体方法参见此处) (一旦你执行了 docker-machine ssh yourMachine):

mount -t vboxsf -o uid=1000,gid=50 your-other-share-name /some/mount/location

我知道你正在使用docker-machine而不是boot2docker,但是docker-machine仍然使用基于TinyCore的boot2docker.iso虚拟机镜像,因此这个命令仍然适用。


这也许有助于不将共享名称与文件夹路径混淆 http://serverfault.com/questions/674974/how-to-mount-a-virtualbox-shared-folder - shrivb
@JohnSam 是的。已经成功挂载了Windows文件夹。 - shrivb
@JohnSam 我猜可以不用VBox UI就能挂载文件夹,但我还是用了VBox UI。这涉及到两个步骤。首先使用Virtual box UI配置共享文件夹。我所做的步骤如下:
  1. 在Virtual box UI中共享文件夹。在VBox中的共享名称为DevEnv。
  2. docker-machine.exe ssh default 'sudo mkdir --parents //f/v1/Dev'
  3. docker-machine.exe ssh default 'sudo mount -t vboxsf DevEnv //f/v1/DevEnv'
然后运行docker容器
  1. docker run -it -v //f/v1/DevEnv:/development/windev <imagename> bash
- shrivb
我需要在shell中仅使用docker-machine代码,而不是virtualbox ui。这可行吗?我认为不行。 - user4412054
@JohnSam 不行:symlink在VirtualBox作为Docker虚拟机使用的基于TinyCore的镜像中不受支持。您需要在VirtualBox(VBoxManage)和TinyCore中都挂载D:/project(请参见我上面的答案)。 - VonC
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接