如何将两个 Docker 容器与 Nomad 连接起来



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

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

我知道很少有方法。第一个只与游牧民族合作,其他人假设领事也被部署。

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

  2. 在领
  3. 事服务注册表中使用 nomadservice节注册服务器应用程序(docker 容器)。然后,您可以在"客户端"应用程序中使用 nomadtemplate节来呈现配置。示例/文档在这里。

  4. 在部署中设置领事连接(服务网格)。

  5. 您可以使用领事 DNS 接口。Consul可以用作DNS服务器,每个服务都可以在<service_name>.service.<dc>.consul(doc)解析。但是您必须将服务器配置为使用领事 DNS(文档)。

方法 1 是最简单的,但具有巨大的局限性(同一节点)。方法 2 对我有用好几年。Nomad非常智能,如果服务器IP/端口发生变化,它将重新加载/重新启动您的客户端IP。

相关内容

最新更新