docker堆栈与覆盖networking和名称parsing

我对docker工人是全新的,昨天开始做一些教程。 我想构build一个由几个不同的服务(复制等)组成的小型testing应用程序,它们相互交互,并遇到了有关“服务发现”的问题。 我从docker.com上的入门教程开始,目前我还不确定在docker的世界里最好的做法是让networking中的不同容器相互认识。

由于这是一个相当模糊的“问题描述”,我试图使这个更加精确。 我想使用一些独立的服务(例如像postgre,mongodb,redis和rabbitmq这样的东西)以及一组由专用主节点分配工作的工作节点。 由于它似乎相当方便,我想使用docker-composer.yml文件来定义我所有的服务并将它们部署为一个堆栈。 此外,我创build了一个自定义的networking,因为似乎不可能将一个堆栈服务连接到一个桥接networking,所以我创build了一个可连接的覆盖networking。

最后要说明的是,即使服务部署正确,实际的容器名称也是随机的,没有使用某种服务registry,我无法解决他们的地址。 一个简单的解决scheme是使用具有固定容器名称的单个容器 – 但是这似乎并不是一个最佳实践解决scheme(尽pipe它实际上只是基于容器名称而不是域名的基于docker的DNS)。 另一个问题是随机生成的包含下划线的容器名称,因此这些名称不是可以parsing的有效地址…

最好的祝福

你看过像Kubernetes的东西吗? 从主页引用:

它将组成应用程序的容器分组为逻辑单元,便于pipe理和发现。