考虑应用程序A是一个应用程序,它提供一种群集形式,允许在此群集上加入允许的指定数量的从属。应用程序B,C和D需要加入此群集才能正常运行。我想要做的是将应用程序A放在容器中,同时将应用程序B,C和D设置在它们自己的容器中。暴露端口不是一个选择。这应该在没有网络功能的情况下完成,因为没有修改应用程序A,B,C和D的代码。我只是希望能够让B,C和D能够从他们的内部访问应用程序A.自己的容器。也许这甚至不可能,因为这是Docker /容器,隔离的重点,但是,考虑到docker目前有--net选项来共享主机网络堆栈我相信这不是难以实现的吗?
答案 0 :(得分:1)
如果所有容器都在一台计算机上运行,那么--link
就是针对这种用例。但是,应用程序必须能够使用由环境变量配置的不同端口。
目前Docker GitHub上有很多活动正在讨论clusters,groups和networking,所以你应该期待更好的原生支持。
您可以考虑' weave',它会创建一个虚拟覆盖网络,即使在不同的数据中心,您的所有容器都可以相互通信,就像它们位于同一个以太网交换机上一样。请注意我的编织工作。