【问题标题】:How to mount network location in docker如何在 docker 中挂载网络位置
【发布时间】:2017-04-02 02:56:40
【问题描述】:

我在我的 Ubuntu 机器上使用 docker (1.12.3)。我正在运行一个 python 脚本,它将其输出发送到 Windows 网络路径 (\\my_win_path\c)。我能够执行python脚本。有人可以帮助我完成第二部分(即将输出(其文本文件)发送到网络位置)。

此网络位置是访问受限的(只有少数 id/人可以访问)并且无论如何我不会对主机创建任何依赖项,因为我将创建的图像将被很多其他人使用,并且他们将使用不同的机器来运行映像?

【问题讨论】:

    标签: python ubuntu docker volume


    【解决方案1】:

    首先将网络路径挂载到您的 Ubuntu 机器。

    再次挂载(挂载网络路径目录)到 Docker 容器,这可以通过使用docker run 命令添加-v 参数来完成。例如,如果您已将网络驱动器安装到您的 Ubuntu 机器的 /mnt

    docker run --privileged -v /mnt:/opt <rest/of/the/parameters>
    

    现在将输出文件重定向到容器内的 /opt。

    【讨论】:

    • 参考此链接了解Windows网络驱动器的安装:mounting-windows-network-shares-in-linux
    • 如果不需要,请不要使用--privileged;使用该选项运行会禁用容器提供的所有安全性,并允许容器内的进程中断并控制主机
    • 非常感谢 Shahin 和 Jeztah。通过执行您建议的操作,我可以获得容器中的安装位置,但它正在创建对主机的依赖。如果我创建这个图像并推送,如果其他人拉取图像并运行它,那么它将不会在他/她的机器上运行,因为他们可能没有将它安装在他们的机器上。我想知道这种依赖是否有任何方式消失。
    • 我在类似的行中又发布了一个问题(关于挂载和写访问):stackoverflow.com/questions/43170818/…
    猜你喜欢
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多