我是码头工人的新手,昨天开始做一些教程。我想构建一个包含多个不同服务(复制等)的小型测试应用程序,这些服务可以相互交互,并且遇到有关“服务发现”的问题。我从docker.com上的入门教程开始,目前我并不确定码头工人的最佳做法是让网络中的不同容器彼此认识。码头堆栈与覆盖网络和名称解析
由于这是一个相当模糊的'问题描述',我试图使这更加精确。我想使用一些独立的服务(例如像postgre,mongodb,redis和rabbitmq等)以及一组工作节点,工作由一个专用主节点分配。由于它看起来相当方便,我想使用docker-composer.yml文件来定义我所有的服务并将它们部署为堆栈。 此外,我创建了一个自定义网络,并且由于似乎无法将堆叠服务附加到网桥,我创建了一个可连接的覆盖网络。
为了最终得出结论:即使服务部署正确,他们的实际容器名是随机的,并且没有使用某种服务注册表,我无法解析他们的地址。 一个简单的解决方案是使用具有固定容器名称的单个容器 - 但这似乎并不是一个最佳实践解决方案(尽管它实际上只是基于容器名称而不是域名的基于码头的DNS)。另一个问题是包含下划线随机生成的容器名称,因此这些名称都没有能解决的有效地址...
问候
感谢您的回答,但我只是发现解决方案实际上简单得多......可以简单地使用作曲家文件中指定的服务名称...... – user1583166