boot2docker启动脚本与主机挂载本地共享文件夹

我在Win7上运行boot2docker 1.3。

我想连接一个共享文件夹。

在图像属性 – >共享文件夹下的VirtualBoxpipe理器中,我添加了我想要的文件夹并将其命名为“c / shared”。 “自动安装”和“永久”框被选中。

当boot2docker启动时,虽然没有安装。 我必须做一个额外的:

sudo mount -t vboxsf c/shared /c/shared 

它显示出来。 因为我每次都需要使用docker,所以我希望在启动时运行,或者只是在那里。 所以我想如果有一些启动脚本我可以添加,但我似乎无法find那里。

谢谢

编辑:这是大喊大叫这是一个Mac上的Boot2Docker的重复- 访问本地文件这是一个不同的问题。 我想安装一个不是默认值的文件夹,例如OSX上的/ User或Windows上的/ c / Users。 我特别要求启动脚本。

Solutions Collecting From Web of "boot2docker启动脚本与主机挂载本地共享文件夹"

/var/lib/boot2docker/bootlocal.sh可能适合您的需要,它将由初始脚本/opt/bootscripts.sh运行

bootscripts.sh也会把输出放到/var/log/bootlocal.log ,看下面的段(boot2docker 1.3.1版本)

 # Allow local HD customisation if [ -e /var/lib/boot2docker/bootlocal.sh ]; then /var/lib/boot2docker/bootlocal.sh > /var/log/bootlocal.log 2>&1 & fi 

我的一个用例是

我通常把shared目录设置为/c/Users/larry/shared ,然后添加脚本

 #/bin/bash ln -s /c/Users/larry/shared /home/docker/shared 

所以每次我都可以像访问主机一样访问boot2docker中的~/shared

请参阅FAQ.md (由@KCD提供)

如果使用boot2docker(Windows),你应该做以下事情:

首先为boot2docker虚拟机创建共享文件夹:

 "C:/Program Files/Oracle/VirtualBox/VBoxManage" sharedfolder add default -name some_shared_folder -hostpath /c/some/path/on/your/windows/box #Then make this folder automount docker-machine ssh vi /var/lib/boot2docker/profile 

在配置文件的末尾添加以下内容:

 sudo mkdir /windows_share sudo mount -t vboxsf some_shared_folder /windows_share 

重新启动码头机器

 docker-machine restart 

验证文件夹内容在boot2docker中是否可见:

 docker-machine ssh ls -al /windows_share 

现在,您可以使用docker run或docker-compose来挂载文件夹。 例如:

 docker run it --rm --volume /windows_share:/windows_share ubuntu /bin/bash ls -al /windows_share 

如果配置文件中的更改在VM或Windows重新启动后丢失,请执行以下操作:

1)编辑文件C:\ Program Files \ Docker Toolbox \ start.sh并注释掉以下行:

 #line number 44 (or somewhere around that) yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}" #change the line above to: # yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}" 

蔡依林的指示使我无法工作。 我想我可以对“c:\ Program Files \ Boot2Docker for Windows \ start.sh”进行更改,下面添加

eval "$(./boot2docker.exe shellinit 2>/dev/null | sed 's,\\,\\\\,g')"

你的mount命令

eval "$(./boot2docker ssh 'sudo mount -t vboxsf c/shared /c/shared')"

我也添加命令来启动我的容器在这里。

eval "$(docker start KDP)"

感谢您的帮助。 我需要添加一些额外的标志,以便boot2docker“docker”用户可以访问新的mount。

 sudo mount -t vboxsf -o umask=0022,gid=50,uid=1000 Ext-HD /Volumes/Ext-HD 

使用docker 1.3,您不需要再手动安装。 只要主机vm上的源位于您的用户目录中,卷就可以正常工作。

https://blog.docker.com/2014/10/docker-1-3-signed-images-process-injection-security-options-mac-shared-directories/