2014-11-06 52 views
0

考虑到应用程序A是一种应用程序,它提供了一种集群形式,允许指定数量的从站加入该集群。应用程序B,C和D需要加入此群集才能正常运行。我想要做的是将应用程序A放入容器中,同时将应用程序B,C和D设置在它们自己的容器中。公开端口不是这个选项。这应该在没有网络功能的情况下完成,因为没有修改应用程序A,B,C和D的代码。我只想让B,C和D能够从他们的内部访问应用程序A自己的容器。也许这是不可能的,因为这是Docker /容器,隔离点,然而,考虑到docker目前有--net选项来共享主机网络堆栈,我相信这不可能是困难的实现?在Docker中共享名称空间

+1

如果暴露的端口是“不是一种选择”,那么如何应用通常相互沟通?文件管道? – 2014-11-06 23:25:53

+0

应用程序通过套接字进行通信。我应该这样说,揭露港口可能是一个选择,但是,我不确定这会有助于在这种情况下... – matt32 2014-11-06 23:56:54

+0

我认为这相当于http://stackoverflow.com/questions/24956322/can-docker-端口转发到A-UNIX的文件插座上的主机容器 – Andy 2014-11-07 02:20:29

回答

1

如果所有容器都在一台机器上运行,那么--link适用于这种用例。但是应用程序必须能够使用由环境变量配置的不同端口。

有此刻讨论clustersgroupsnetworking了很多泊坞窗GitHub的活动,所以你应该期望在未来能有更好的本地支持。

您可以考虑'weave',它创建了一个虚拟覆盖网络,即使在不同的数据中心内,您的所有容器都可以相互通话,就好像它们位于同一个以太网交换机上一样。请注意我工作编织。

http://github.com/zettio/weave

相关问题