3 가지 서비스가 docker-compose에 정의되어 있습니다. 그 중 하나는 다른 두 서비스에서 수신해야하는 멀티 캐스트를 보내지 만 그 중 하나만 수신합니다. 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가 멀티 캐스트를 얻을 수 있지만, 수신기 2 않습니다.
보낸 사람 네트워크 필드에서 network_a를 제거하면 receiver2가 메시지를 수신합니다. 어떻게 든 멀티 캐스트는 여러 네트워크에서 작동하지 않습니다.
왜 이런 일이 발생하는지 알고 있습니까?
여기에서보십시오 : https://github.com/docker/docker/issues/23659 인용구 : "로컬 인터페이스 주소를 멀티 캐스트 송신기 소켓에 바인드하지 않으면 Linux (afaik)가 기본 라우트 인터페이스 주소를 선택하십시오. " – CFrei
@CFrei 고맙습니다. 당신이 옳았습니다. 그것은 해결책의 길이었습니다. – timeFly