链接的docker集装箱之间的通信

我有两个docker集装箱在主机上的以下设置:

  • 容器1 – UDP端口5043映射到主机端口5043(0.0.0.0:5043:5043)
  • 容器2 – 需要以UDP方式将数据发送到端口5043上的容器1。

情况1

  1. 我启动Container 1并获取它的IP地址。
  2. 我使用这个IP地址并configurationContainer 2并启动它。
  3. 容器2能够通过调用udp://Container_1_IP:5043发送UDP数据到容器1

一切工作!

情景2

  1. 我通过将5043 UDP端口映射到主机的5043端口( 0.0.0.0:5043:5043 )来启动Container 1
  2. 我使用“ – 链接”链接容器2和容器1。
  3. 现在,当Container 2调用URL udp://Container_1_IP:5043 ,会出现错误“ Connection refused ”。
  4. 我确实能够使用IP从容器2内部ping容器1。

任何帮助,以获得scheme2为我工作将非常感激!

Solutions Collecting From Web of "链接的docker集装箱之间的通信"

如Docker链接中所述 :

Docker还为源容器公开的每个端口定义了一组环境变量。
每个变量都有一个唯一的前缀形式:

 <name>_PORT_<port>_<protocol> 

这个前缀中的组件是:

  • 在–link参数中指定的别名(例如,webdb)
  • 暴露的<port>号码
  • 一个<protocol>是TCP或UDP

这意味着你需要确保Container1公开正确的端口与正确的协议(你的情况,UDP):请参阅“ 如何在Docker上公开一个UDP端口?