容器如何枚举网络上可用的主机?

时间:2016-06-24 01:35:17

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

Consul是一项服务发现 Consul-Template监视Consul并更新HA Proxy配置并重新加载。 如果有任何容器启动或关闭,Registrator会侦听Docker Engine并更新Consul。

请看图片:

enter image description here

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

相关问题