【问题标题】:Docker External File Access Not in /Users/ on OSXDocker 外部文件访问不在 OSX 上的 /Users/ 中
【发布时间】:2014-11-19 00:11:28
【问题描述】:

所以,尽管Docker 1.3 now allowing easy access to external storage on OSX through boot2docker for files in /Users/,我仍然需要访问不在 /Users/ 中的文件。我在 /etc/settings/ 中有一个设置文件,我希望我的容器可以访问它。此外,我容器中的 CMD 将日志写入容器中的 /var/log,我宁愿让它写入主机上的 /var/log。我一直在玩VOLUME 并在运行时使用-v 传递东西,但我没有得到任何结果。谷歌搜索并没有太大帮助。有这个工作的人可以提供帮助吗?

【问题讨论】:

    标签: docker boot2docker


    【解决方案1】:

    作为 boot2docker now includes VirtualBox Guest Additions,您现在可以与来宾操作系统 (boot2docker-vm) 共享主机 (OSX) 上的文件夹。 /Users/ 会自动挂载,但您可以挂载/共享自定义文件夹。在您的主机控制台 (OSX) 中:

     $ vboxmanage sharedfolder add "boot2docker-vm" --name settings-share --hostpath  /etc/settings --automount
    

    启动 boot2docker 并通过 ssh 进入它 ($boot2docker up / $boot2docker ssh)。 选择你想在 boot2docker 虚拟机中挂载“settings-share”(/etc/settings)的位置:

    $ sudo mkdir /settings-share-on-guest
    $ sudo mount -t vboxsf settings-share /settings-share-on-guest
    

    根据/settings是docker容器中声明的卷,在docker run命令中添加-v /settings-share-on-guest:/settingsmount the host directory settings-share-on-guest as a data volume

    在 Windows 上工作,未在 OSX 上测试,但应该可以工作。

    【讨论】:

    • 为什么一定要提供uid和gid?
    • 我需要挂载两个东西,当我指定 gid 和 uid 时,一个会覆盖另一个。当我切换到 sudo mount -t vboxsf settings-share /settings-share-on-guest 时,一切正常。无论如何,很棒的答案!
    • 答案编辑为 gid 和 uid 不是强制性的。我不知道为什么它会覆盖你的第一个挂载。
    • OSX 上,也可以使用 Virtualbox Manager 工具创建共享 - 在这里您可以将其设置为自动挂载
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 2012-10-17
    相关资源
    最近更新 更多