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

pha*_*zei 23 windows docker boot2docker

我在Win7上运行boot2docker 1.3.

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

在图像属性 - >共享文件夹下的VirtualBox Manager中,我添加了我想要的文件夹,并将其命名为"c/shared".检查"自动安装"和"永久"框.

当boot2docker启动时,它不会挂载.我还要做一个额外的事情:

sudo mount -t vboxsf c/shared /c/shared
Run Code Online (Sandbox Code Playgroud)

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

谢谢

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

Lar*_*Cai 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 
Run Code Online (Sandbox Code Playgroud)

一个用例对我来说是

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

#/bin/bash
ln -s  /c/Users/larry/shared /home/docker/shared
Run Code Online (Sandbox Code Playgroud)

所以每次,我都可以~/shared在boot2docker中访问,就像在host中一样

FAQ.md (由@KCD提供)

  • 它应该是/var/lib/boot2docker/boot2docker.sh,我不知道为什么@ user3699741编辑了错误指示的答案. (3认同)
  • 使用docker版本1.6.2,每次我编辑/opt/bootlocal.sh来添加启动命令时它会在重新启动时消失. (2认同)

rgr*_*ski 7

如果使用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
Run Code Online (Sandbox Code Playgroud)

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

sudo mkdir /windows_share
sudo mount -t vboxsf some_shared_folder /windows_share
Run Code Online (Sandbox Code Playgroud)

重启docker-machine

docker-machine restart
Run Code Online (Sandbox Code Playgroud)

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

docker-machine ssh
ls -al /windows_share
Run Code Online (Sandbox Code Playgroud)

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

docker run it --rm --volume /windows_share:/windows_share ubuntu /bin/bash
ls -al /windows_share
Run Code Online (Sandbox Code Playgroud)

如果在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}"
Run Code Online (Sandbox Code Playgroud)