【问题标题】:How can a container enumerate hosts available on the network?容器如何枚举网络上可用的主机?
【发布时间】:2023-03-13 15:05:02
【问题描述】:

用例:使用 docker compose 运行的 haproxy 容器。我想让容器发现哪些主机可用,以便重新创建 haproxy 配置并重新加载它。

我知道会有一个或多个名为 server1 和 server2 的容器可用。从 haproxy 容器内部,我可以查询 server1 的 dns 并接收多个 IP 地址。这是知道新的 server1 硬币容器何时可用或死亡的唯一方法吗?我知道我可以使用运行在容器内的 python 的 docker api,该容器具有映射到它的 docker 主机套接字,但我不确定在 swarm 上运行时是否可以工作。

完美的解决方案是让我注册一个在新容器加入网络时调用的事件处理程序的 api 或命令。

【问题讨论】:

    标签: docker docker-compose docker-swarm docker-api


    【解决方案1】:

    有一个解决方案,您可以使用 Registrator (https://github.com/gliderlabs/registrator)、Consul 和 Consul Template。

    Consul 是一个服务发现 Consul-Template 监视 Consul 并更新 HA 代理配置并重新加载它。 Registrator 监听 Docker Engine 并在容器启动或关闭时更新 Consul。

    请看图片:

    完整教程可以参考我的博客(https://sonnguyen.ws/microservices-with-docker-swarm-and-consul/)了解如何实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 2011-07-09
      • 1970-01-01
      • 2020-07-17
      • 1970-01-01
      相关资源
      最近更新 更多