Mac上的Boot2Docker – 访问本地文件

我刚刚在我的Mac上设置了boot2docker。 我如何在Mac上安装本地目录,以便一直运行到正在运行的Docker容器? 谢谢你的帮助!

截至2014年10月16日,Docker支持在/ Userspath中无缝安装目录。

从Docker博客 :

在这个版本中,我们解决了最常见的问题:在Mac和你的容器之间共享目录。 使用Docker 1.3和相应版本的boot2docker,主机安装的卷现在可以按照您期望的方式工作。

…请注意,仍然存在一些限制:例如,此function仅限于boot2docker的virtualboxconfiguration,不能被dynamicpipe理,只适用于/ Users中的目录。 但是,我们正在收到改进批量pipe理的激动人心的贡献,所以预计在未来几个版本中,这一领域将大幅改善。

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

boot2docker与/ Users不同的共享

请参阅https://github.com/boot2docker/boot2docker/issues/678

与VM共享您的文件夹:

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

根据发现un bootlocal.sh信息,您知道VM将运行位于/var/lib/boot2docker文件夹中的bootlocal.sh脚本,该文件夹中的数据仍然存在。

添加一个文件/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

boot2docker与VirtualBox Guest Additions一起使用
如何挂载/用户到boot2docker

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

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

正如Levi提到的,​​/ Users目录是自动安装的。 在boot2docker和docker-machine中都是如此。 也就是说,如果你想在/ Users之外安装任何东西,所有当前的答案都会讨论Boot2docker。 因为现在已经不赞成docker-machine了,所以对docker-machine有效:

首先,进入docker-machine虚拟机并创build我们要映射到的文件夹:

 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 

最后,再次进入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上testing的。