一尘不染

在OSX上将卷挂载到Docker映像

docker

在Mac上,如何将卷装载到Docker容器?

在我的Linux机器上,这很容易。我需要做的只是-v /src/webapp:/opt/webapp运行容器时的操作。但是Mac是不同的,因为我必须运行boot2docker才能在VirtualBox中运行VM。我试过跑步

boot2docker init
boot2docker up
boot2docker ssh # to poke around
boot2docker stop
VBoxManage sharedfolder add "boot2docker-vm" --name "Users" --hostpath /Users
boot2docker up
boot2docker ssh "sudo modprobe vboxsf"

但我明白了

modprobe: module vboxsf not found in modules.dep

如果我忽略了它,仍然尝试像这样挂载在虚拟机上

boot2docker ssh "sudo mkdir /test && sudo mount -t vboxsf Users /test"

我懂了

mount: mounting Users on /test failed: No such device

我感觉好像缺少了一些非常简单的东西,但是我无法弄清楚。任何帮助将不胜感激。


阅读 243

收藏
2020-06-17

共1个答案

一尘不染

好的,在研究了GitHub
PR之后
,我找到了一种方法。对于将来的读者,此过程应在即将发布的boot2docker版本中修复。

# assuming boot2docker and VirtualBox are installed
wget http://static.dockerfiles.io/boot2docker-v1.2.0-virtualbox-guest-additions-v4.3.14.iso
mv boot2docker-v1.2.0-virtualbox-guest-additions-v4.3.14.iso ~/.boot2docker/boot2docker.iso
# blow away your old boot2docker-vm if it exists (boot2docker down && boot2docker destroy)
boot2docker init
boot2docker up
# set DOCKER_HOST as instructed
boot2docker stop
VBoxManage sharedfolder add boot2docker-vm --name /Users --hostpath /Users
boot2docker up
# if you ssh into the VM now, you'll notice /Users is present, but empty; I don't know/care why.
boot2docker ssh "sudo mount -t vboxsf -o uid=1000,gid=50 /Users /Users"
# done

这对我有用,所以我希望对其他人也有用。我希望在不久的将来,boot2docker将解决此问题,尤其是因为合并了我从中获得这些命令的PR以来。

编辑 :boot2docker 1.3.0支持此功能,无需任何进一步更改。更新后,我运行了以下命令:

boot2docker destroy  # start over
boot2docker download # download the udpated ISO
boot2docker init
boot2docker up
# done
2020-06-17