建筑 – 从容器(docker)中宣布你的应用程序

我在周末在 docker’s IRC问了这个问题,但是在我想到了答案之前,我已经开始了:

如果我有一些应用程序在容器中运行(我们现在假设它们都运行在相同的物理硬件上,但不一定是这样),我希望他们能够找到每个应用程序其他自动.

使用某种注册表(例如etcd或DNS-SD / Bonjour),您可以宣布您的服务和任何相关细节,并让其他应用程序了解它们并相应地路由流量.

这里的问题是,虽然应用程序可以知道在容器内正在服务的主机名/端口,但这不需要是可访问的端口或地址.有两位需要加入的信息:

>可以访问服务的地方;从容器外部进出
>服务做什么(版本号,服务类型)从容器内部可以进入

你会如何推荐我通过这个容器屏障获得这些信息?

>我可以通过TCP将Docker暴露给容器,所以应用程序可以查询它的显示位置,但这似乎违反了分离问题.
>我可以在我的容器中打开一个文件/端口,主机系统在容器启动之后进行查询,以准备一个通知,但这感觉有点像我会重新创建WSDL.

对于如何解决这个问题的任何想法或指导?

我想也许在启动集装箱后执行服务注册的方法.然后,其他容器可以执行注册表查找以发现这些服务.

更新

maestro项目提供了一个例子,说明容器如何在外部进行配置,然后启动以建立一个合作的容器网络.

相关文章
相关标签/搜索