首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同容器中应用程序之间的Docker通信

不同容器中应用程序之间的Docker通信
EN

Stack Overflow用户
提问于 2016-12-13 20:58:14
回答 1查看 596关注 0票数 2

我一直在到处寻找这个答案。对我来说,这似乎是一个显而易见的问题,然而,答案却让我不知所措。

我现在的设置是,我在同一个网桥网络上有redis、mongodb和两个api服务器。第一个服务器充当一个网关api,它执行所有的auth操作,并公开某些api调用。后端api是处理所有db交互和数据处理的api。如果我只访问后端(内部) api,我就能够看到内容(这个api不会在实际的生产环境中公开)。但是,如果我从网关api中发出相同的请求,我就无法访问后端(内部) api,它也是我创建的桥接网络的一部分。

下面是容器交互的图表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-13 21:35:47

我仍然使用遗留链接,但我对此有点熟悉。我认为问题在于,您正在尝试从网关容器中命中"localhost“。内部API容器不能解析为网关API容器内的"localhost“。由于端口映射,您可以从主机或外部访问"localhost:8099“,但其他容器都无法解析该地址/端口,因为他们认为这是一台远程计算机。

这是一个测试我在想什么的方法。在主机的shell中,运行显示为这里的桥检查命令。从Containers.<inner-api-hash>.IPV4.复制IP地址然后使用docker exec -it <gateway-id> /bin/bash在网关容器中打开一个shell,然后使用curlwget查看是否可以访问所复制的IP地址。

如果我的想法是正确的,您将看到您必须使用您的内部API节点的Docker从其他容器分配的IP地址。在其他选项中,您可以使用静态IP地址启动容器,如这里所示。

这开始脱离我的知识范围,但您也可以配置容器DNS。配置容器DNS

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41130421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档