2017-04-12 24 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。