链接的docker容器之间的通信

时间:2015-04-09 23:54:45

标签: linux networking docker docker-compose

我在主机上的以下设置中有两个docker容器:

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

场景1

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

    一切正常!!

    场景2

    1. 我通过将5043 UDP端口映射到主机的5043端口(0.0.0.0:5043:5043)来启动容器1
    2. 我使用“--links”链接容器2和容器1.
    3. 现在,当容器2调用网址udp://Container_1_IP:5043时,会引发错误“Connection refused”。
    4. 我确认我能够使用IP从Container 2内部ping容器1。
    5. 任何让Scenario 2为我工作的帮助都会非常感激!!

1 个答案:

答案 0 :(得分:1)

Docker links中所述:

  

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

<name>_PORT_<port>_<protocol>
  

此前缀中的组件为:

     
      
  • --link参数中指定的别名(例如,webdb)
  •   
  • 公开的<port>号码
  •   
  • <protocol>是TCP或UDP
  •   

这意味着您需要确保Container1使用正确的协议(在您的情况下为UDP)公开正确的端口:请参阅&#34; How do I expose a UDP Port on Docker?&#34;