【发布时间】:2016-07-19 12:11:55
【问题描述】:
我在 docker-compose 中定义了 3 个服务。其中一个发送应该由其他 2 个服务接收的多播,但只有一个接收它。 2 个接收者在不同的网络中,而发送者是两个网络的一部分。
docker-compose.yml:
services:
sender:
networks:
- network_a
- network_b
receiver1:
networks:
- network_a
depends_on:
- sender
receiver2:
networks:
- network_b
depends_on:
- sender
networks:
network_a:
ipam:
driver: default
config:
- subnet: 172.20.1.0/24
gateway: 172.20.1.1
network_b:
ipam:
driver: default
config:
- subnet: 172.20.2.0/24
gateway: 172.20.2.1
receiver1 获得多播,但 receiver2 没有。
如果我从发送者网络字段中删除 network_a,则接收者 2 会收到消息。不知何故,多播在多个网络上不起作用。
有人知道为什么会这样吗?
【问题讨论】:
-
看看这里:github.com/docker/docker/issues/23659 从那里引用:“如果你没有将本地接口地址绑定到多播发送方套接字,Linux (afaik) 将选择你的默认路由接口地址。”
-
@CFrei 谢谢你,你是对的,这就是解决方案的路径。
标签: docker docker-compose multicast docker-networking