在Docker中共享命名空间

时间:2014-11-06 22:19:03

标签: namespaces containers docker lxc

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

1 个答案:

答案 0 :(得分:1)

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

目前Docker GitHub上有很多活动正在讨论clustersgroupsnetworking,所以你应该期待更好的原生支持。

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

http://github.com/zettio/weave