2017-04-12 56 views
0

我目前正在dockerizing一个微服务应用程序并使用Consul进行服务发现。因此,所有的服务都向领事登记,并从领事处获得环境变量。未解锁的微服务应用程序的启动脚本从用户处取得Consul ip:port并将其转发给所有其他微服务,这很好。但是,如何为dockerized微服务应用程序复制相同的容器,因为每个容器都是独立的。另外,所有的服务都需要向领事注册,但他们没有领事。如何使其他微服务知道服务注册中心的领事的IP地址

我可以在每个所需的微服务应用程序中对consul ip:port进行硬编码,但我不认为这是一种优雅的方式。那么你对如何让其他服务意识到consul ip有任何想法吗?

任何帮助表示赞赏。

回答

0

您可以通过领事IP &港为环境变量(S)到您的码头工人(-edocker run命令)

+0

太棒了!我们是否也可以使用码头工具将这个作为环境变量进行组合? –

+0

确定https://docs.docker.com/compose/reference/run/ –

0

领事提供DNS interface。不要使用IP地址,如果你不是真的做任何类型的服务发现。

要做的最好的事情是在您的DNS基础结构中设置DNS Forwarding,然后查找consul.service.consul。