在Docker容器中接收UDP多播

我在运行一个节点容器的覆盆子pi上使用docker compose和hypriotos。 我想在本地networking中收到udp组播消息发送到239.255.255.250:1982。 我的代码正在Docker之外的其他机器上工作,所以我认为这是一个docker问题。

我已经在Docker文件中显示了端口1982 / udp,并且在端口中添加了“1982:1982”和“239.255.255.250:1982:1982 /udp”的docker-compose文件。 我仍然收不到任何东西。 我错过了什么吗?

我的具体计划是接收来自yeelight的广告信息。 这些消息logging在这里

你能帮忙的话,我会很高兴。 谢谢。

虽然你可以用-p 1982:1982/udp-p 1982:1982/udp我不相信docker的端口转发目前支持多播。 如果你在守护进程上禁用userland代理( dockerd --userland-proxy=false ... ),你可能会有更好的运气,但这只是一个猜测。

快速/简单的解决scheme,同时删除一些隔离,是使用docker run --net=host ...来使用主机networking。