【问题标题】:how can I connect two docker containers with nomad如何将两个 docker 容器与 nomad 连接
【发布时间】:2021-09-22 06:28:15
【问题描述】:

我构建了两个使用 docker 网络相互通信的 docker 应用程序,但是当我尝试使用 nomad 运行这些应用程序时。 nomad 中的问题是容器名称不可配置并且给容器一个随机名称。因此,我无法将这些容器添加到 docker 网络并让它们通过特定名称相互认识。

那么如何使用 nomad 在同一个 docker 网络中运行两个或多个 docker 容器?

【问题讨论】:

  • 我也遇到了同样的问题。到目前为止有什么解决方案吗?
  • hostname 怎么样?你能分享一下你目前的工作定义吗?

标签: docker networking docker-network nomad


【解决方案1】:

我知道几种方法。第一个仅适用于 nomad,其他假设也部署了 consul。

  1. 将两个容器放在同一个任务组中。 Nomad 将始终将它们定位在同一个节点上,您可以通过 Nomad 环境变量 NOMAD_IP_<label>NOMAD_PORT_<label>NOMAD_ADDR_<label> 访问地址。

  2. 使用 nomad service stanza 在 consul 服务注册表中注册服务器应用程序(docker 容器)。然后,您可以在“客户端”应用程序中使用 nomad template 节来呈现配置。示例/文档是here

  3. 在您的部署中设置 consul connect(服务网格)。

  4. 你可以使用 consul DNS 接口。 Consul 可以作为 DNS 服务器工作,每个服务都可以在 <service_name>.service.<dc>.consul (doc) 解析。但是你必须配置你的服务器以使用 consul DNS (doc)。

方法 1 是最简单的,但有很大的限制(相同的节点)。方法 2 为我工作了好几年。 Nomad 非常聪明,它会在服务器 IP/端口发生变化时重新加载/重新启动您的客户端 IP。

【讨论】:

    猜你喜欢
    • 2021-11-24
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 2021-01-26
    相关资源
    最近更新 更多