【发布时间】:2021-02-05 12:35:16
【问题描述】:
我在 1 个主机上有 2 个 docker 容器(容器名称:A 和 B),它们连接到同一个用户定义的网桥(测试网桥)。
目标状态/尝试实现:
能够仅通过主机名而不是主机名:端口从容器 A 调用容器 B。
当前状态:
我能够调用 API 的托管通过 url http://{{containerName:portNumber} 在容器 B 内,即来自容器 A 的 http://B:6000。
我想删除端口号,因为 IMO 与同一个网络连接容器名称应该足以解决对目标容器的请求。
有没有办法通过这种方法进行容器间通信
更新
仍在寻找解决方案,因为我正在处理的包将是一个核心实用程序(至少 3 个容器),它将与其他 docker 应用程序一起部署。端口号 80 只能帮助 1 个容器,但要调用其他实用程序,调用者需要附加我无法公开的端口号,因为它是基础设施/网络级别的信息。
【问题讨论】:
-
端口也是必不可少的信息,因为6000是一个非标准的HTTP端口(标准是80)。如果是 80,您可以省略它,对于 HTTPS,您可以省略端口 443。您的服务无法知道 API 正在侦听另一个容器中的端口 6000。
-
hmm..我期待容器的名称是否已经存在于同一个网络上,它可以很容易地被 docker 提取/识别,它可以省去硬编码端口的麻烦网址
-
如果硬编码端口是问题,那么将其设置在变量中并在 URL 中使用该变量?