1

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

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

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

4

1 回答 1

0

有一个解决方案可以使用 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/ ) 了解如何实现它。

于 2016-06-24T03:42:11.817 回答