【发布时间】:2016-02-17 00:28:00
【问题描述】:
根据这个tutorial from docker website,当你启动一个容器时,它会自动分享你的/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"
}
我的问题很简单:
如何手动与 VM 托管 docker(此处为虚拟盒)共享目录以将其用作卷安装点?
这就是我在 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 共享的小脚本的中间部分处理的。
但我现在该怎么办?
【问题讨论】:
标签: macos docker docker-machine docker-volume