根据docker 网站上的本教程,当您启动容器时,它会自动共享您的/Users/username
.
我目前的问题:
但是在我的学校里,我$HOME
不在/Users
,当我尝试使用类似的东西docker run -d -P -v $HOME/site:/usr/share/nginx/html --name mysite nginx
(如链接中的教程)直接在我的容器上挂载卷时,我无法通过挂载的卷更改文件。所以我想我$HOME
的不会自动共享。
但是如果我跑步,docker instpect mysite
我会得到:
"HostConfig": {
"Binds": [
"/nfs/zfs-student-3/users/vmonteco/site:/usr/share/nginx/html"
],
和
"Mounts": [
{
"Source": "/nfs/zfs-student-3/users/vmonteco/site",
"Destination": "/usr/share/nginx/html",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
我的问题很简单:
我如何手动与托管 docker 的 VM 共享目录(此处为 virtualbox)以将其用作卷安装点?
这就是我在 Boot2docker 被弃用之前使用它的方式:
使用boot2docker我可以运行类似的东西:
SHAREDIR=$HOME/share
# creating share folder.
mkdir $SHAREDIR
# mount shared folder while relaunching boot2docker :
boot2docker --vbox-share="$SHAREDIR=share" up
echo "Creating and mounting \"share\" directory in boot2docker VM."
boot2docker ssh "sudo mkdir /share; sudo mount -t vboxsf share /share"
# running the container :
docker run -ti --rm -v /share:/share -v /Users:/Users base/archlinux sh
它工作得很好。
但是现在boot2docker已被弃用,我没有找到如何使用我现在必须使用的 VM(它使用 virtualbox)来执行此操作。
如果我理解得很好,它的工作方式应该与 boot2docker 的工作方式相同:
1 2
[directory from OSX] <===> [VM directory (the VM replaces Boot2docker)] <===> [container directory]
如果我仍然理解得很好,那么现在唯一不起作用的是点[1],这是由我刚刚与 boot2docker 共享的小脚本的中间部分处理的。
但我现在怎么办?