boot2docker启动脚本,用于在主机上挂载本地共享文件夹

时间:2014-10-29 20:23:31

标签: windows docker boot2docker

我在Win7上运行boot2docker 1.3。

我想连接共享文件夹。

在图像属性 - >共享文件夹下的VirtualBox Manager中,我已经添加了我想要的文件夹,并将其命名为" c / shared"。 "自动安装"并且"永久地"盒子被检查。

当boot2docker启动时,它不会安装。我还需要做一些额外的事情:

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

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

由于

编辑:我大吼大叫这是Boot2Docker on Mac - Accessing Local Files的副本,这是一个不同的问题。我想安装一个不是默认设置的文件夹,例如OSX上的/ User或Windows上的/ c / Users。我特意要求启动脚本。

5 个答案:

答案 0 :(得分:19)

/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提供)

答案 1 :(得分:6)

如果使用boot2docker(Windows),您应该执行以下操作:

首先为boot2docker VM创建共享文件夹:

"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

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}"

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

按照Larry Cai的指示,我无法工作。我想我可以对“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)"

答案 4 :(得分:-1)

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

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