示例:我有一个微服务“ Alpha”,通常连接到“ http://localhost:3306/dbforalpha”。服务取决于该数据库。现在,我想对数据库和服务进行容器化。当然,数据库的地址正在更改,因此我什至无法为服务“ Alpha”构建映像。
现在我想知道如何处理该问题?与等待数据库容器运行以检查其ip:port相比,必须有一种更简单的方法。像kubernetes这样的工具可以解决这个问题吗?
答案 0 :(得分:2)
Docker带有service discovery
机制(这是服务如何知道如何相互通信的基本术语),容器可以链接在一起,并且可以使用DNS与它们通信。
例如,您的alpha服务可以链接到您的数据库,然后连接到db:3306
,而Docker会在/etc/hosts
中设置必要的alpha
条目,以便它可以解析{{ 1}}到IP。