12

我刚刚在我的 Mac 上设置了 boot2docker。如何在我的 Mac 上挂载一个本地目录,以便它可以一直访问到正在运行的 Docker 容器?谢谢你的帮助!

4

4 回答 4

11

As of October 16, 2014, Docker supports mounting directories in the /Users path seamlessly.

From the Docker blog:

With this release we are addressing the most common issue: sharing directories between your Mac and your containers. Using Docker 1.3 with the corresponding version of boot2docker, host-mounted volumes now work the way you expect them to.

...请注意,仍然存在一些限制:例如此功能仅限于 boot2docker 的 virtualbox 配置,无法动态管理,并且仅适用于 /Users 中的目录。但是我们收到了令人兴奋的贡献来改进卷管理,因此预计该领域将在接下来的几个版本中大幅改进。

示例用法: $ docker run -v /Users/bob/myapp/src:/src [...]

于 2014-10-24T14:00:06.593 回答
7

boot2docker 与 /Users 以外的共享

https://github.com/boot2docker/boot2docker/issues/678

与 VM 共享您的文件夹:

VBoxManage sharedfolder add boot2docker-vm --name /tmp/Work --hostpath /CODE --automount

根据找到的信息 un bootscript.sh,您知道 VM 将运行文件夹中的bootlocal.sh脚本,/var/lib/boot2docker数据保存在该文件夹中。

添加文件/var/lib/boot2docker/bootlocal.sh

#!/bin/sh
# bash is not available!
mkdir -p /CODE
mount -t vboxsf /tmp/Work /CODE

然后chmod +x /var/lib/boot2docker/bootlocal.sh重新启动你的boot2docker-vm虚拟机。

于 2015-05-01T07:37:42.657 回答
3

boot2docker 与 VirtualBox Guest Additions
如何将 /Users 挂载到 boot2docker

https://medium.com/boot2docker-lightweight-linux-for-docker/boot2docker-together-with-virtualbox-guest-additions-da1e3ab2465c

tl;dr 使用 VirtualBox Guest Additions 构建您自己的自定义 boot2docker.iso(请参阅链接)或下载 http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso 并保存到 ~/.boot2docker/boot2docker.iso。

于 2014-06-25T12:41:00.593 回答
0

正如 Levi 提到的,/Users 目录是自动挂载的。这在 boot2docker 和 docker-machine 中都是如此。也就是说,如果你想在 /Users 之外挂载任何东西,所有当前的答案都是关于 Boot2docker。由于现在不赞成使用 docker-machine,因此这适用于 docker-machine:

首先,通过 ssh 进入 docker-machine vm 并创建我们将映射到的文件夹:

docker-machine ssh $MACHINE_NAME "sudo mkdir -p \"$VOL_DIR\""

现在将文件夹共享到 VirtualBox:

WORKDIR=$(basename "$VOL_DIR")
vboxmanage sharedfolder add "$MACHINE_NAME" --name "$WORKDIR" --hostpath "$VOL_DIR" --transient

最后,再次 ssh 进入 docker-machine 并挂载我们刚刚共享的文件夹:

docker-machine ssh $MACHINE_NAME "sudo mount -t vboxsf -o uid=\"$U\",gid=\"$G\" \"$WORKDIR\" \"$VOL_DIR\""

注意:对于 UID 和 GID,您基本上可以使用任何整数,只要它们还没有被占用。

这是从 OS X El Capitan 上的 docker-machine 0.4.1 和 docker 1.8.3 开始测试的。

于 2015-10-29T00:52:15.873 回答