【问题标题】:How to mount shared folder between server and docker container?如何在服务器和 docker 容器之间挂载共享文件夹?
【发布时间】:2018-07-29 09:33:02
【问题描述】:

我需要在远程服务器 A(服务器)(ubuntu)和 docker 容器 B、C、D(客户端)(debian)列表之间设置一个共享文件夹。我正在使用 Rancher 来管理这些容器,它们可以在不同的主机上移动,所以我不想与 docker 主机共享任何卷。 A 必须接收和删除文件,并且必须能够将这些更改传达给 B、C、D,反向关系也是如此。 我的容器可以通过带有 haproxy 重定向的负载均衡器访问。

几天以来我一直在努力寻找正确共享这些文件夹的解决方案,但我以前从未这样做过。我尝试在 Rancher 中使用 nfs-driver,但我无法加载任何东西;而且我也尝试直接挂载网络文件系统(NFS)也没有成功:两台服务器无法在它们之间进行通信,当我尝试挂载文件夹时,什么也没有发生。我看到是服务器端拒绝连接(但 ping 正在工作),所以可能是密码问题或映射问题。我读到 NFS 并不是为了在云上共享文件夹而设计的,但是所有服务器都在我的提供商的同一个区域中,并且可以将它们放在私有网络中,所以我认为它可以工作。

在这种情况下可以使用 NFS 吗?如果是,您是否对 docker 客户端的配置有任何线索(特别是在域名上,因为我无法为它们设置 ip)。或者如果没有,我可以使用其他哪种解决方案?

非常感谢您的帮助。

【问题讨论】:

    标签: docker architecture mount nfs


    【解决方案1】:

    您有任何代码要显示吗? 您正在寻找的是 docker 卷 https://docs.docker.com/storage/volumes/

    例如-v 开关

    docker run -itd -v "mylocalfolder":"myContainerFolder" container:name sh

    【讨论】:

    • 嗨 Zee303 我遵循了一些 NFS 指南:stephenrlang.com/2016/01/setup-nfsv4-on-ubuntu-or-debian 我卡在安装步骤中 你确定卷吗?我不知道如何使用它们。服务器 A 不托管任何 docker 容器,它是一个单独的系统,需要从 B C D 容器发送/接收文件 那么如何将来自远程服务器的数据直接挂载到容器中呢?它们是使用 docker-compose 在本地构建的,我将图像上传到 Rancher 当我测试 Rancher-nfs 时,它从未成功创建卷。我不明白为什么,我无法访问控制台日志
    【解决方案2】:

    在我看来,您的解决方案需要结合使用 Docker 卷配置(如第一个答案中所述)以及 NFS 或类似的远程安装技术。使用 Docker 卷挂载,您可以将主机文件系统位置映射到容器中的文件系统位置。您必须弄清楚如何使用 NFS 将该主机文件系统位置映射到不同主机上的文件系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 2018-06-27
      • 2016-09-18
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多