【问题标题】:Receive UDP Multicast in Docker Container在 Docker 容器中接收 UDP 组播
【发布时间】:2017-02-23 17:25:00
【问题描述】:

我在运行节点容器的树莓派上使用 docker compose 和 hypriotos。我想在本地网络中接收发送到 239.255.255.250:1982 的 udp 多播消息。我的代码在 docker 之外的其他机器上运行,所以我认为这是一个 docker 问题。

我已经在 docker 文件中公开了端口 1982/udp,在 docker-compose 文件中我将“1982:1982”和“239.255.255.250:1982:1982/udp”添加到端口。我还是什么都收不到。我错过了什么吗?

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

任何帮助都会很好。谢谢。

【问题讨论】:

    标签: node.js docker docker-compose


    【解决方案1】:

    虽然您可以使用 -p 1982:1982/udp 进行 udp,但我认为 docker 的端口转发目前不支持多播。如果您禁用守护进程 (dockerd --userland-proxy=false ...) 上的用户级代理,您可能会获得更好的运气,但这只是猜测。

    快速/简单的解决方案是使用带有docker run --net=host ... 的主机网络,同时消除一些隔离。

    【讨论】:

    • 谢谢,我现在正在使用主机网络,它可以工作。我必须在 docker-compose 文件中设置“network_mode”选项。
    • @daniel17903 你能分享一下可以让 docker 容器从主机接收 udp 广播的配置吗?
    • 端口转发解决方案(无需禁用守护进程上的用户陆地代理)在 Linux 上的 Docker 19.03.5 上对我来说很好。
    • @rgov 好奇是多播数据包还是普通的单播/UDP 数据包。
    • @BMitch 数据包正在发送到 192.168.1.255 并由 192.168.1.100 接收。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    相关资源
    最近更新 更多