从 Docker 容器发送多播数据包(到多播组)
Sending Multicast Packets from Docker Container (to multicast group)
我有一个通过 UDP 多播发送消息的应用程序,我一直试图将其置于 docker 之下。我一直 运行 试图从 docker 容器发送多播数据包。
我已经能够通过 运行 docker 容器上的 --net=host
选项发送消息。但是,我想坚持使用网桥配置。
我想深入了解需要做什么才能通过标准 docker 网桥配置发布消息。我正在尝试使用端口 16000
在 239.9.60.250
上发布消息。我尝试通过 docker run
.
上的以下参数发布 udp 端口 16000
-P 0.0.0.0:16000:16000/udp
这并没有给我任何行为上的改变,我的主机也没有看到任何多播流量。
Docker 网络驱动程序没有 IGMP/PIM 支持,因此您应该真正建立从容器到物理 switch/router 的直接第 2 层连接。
正如您自己发现的那样,docker 的默认桥接网络在这里对您没有帮助。
我还没有用多播测试过它,但是你应该可以用 Pipework 来实现它。
macvlan driver 应该可以帮助您解决问题,但从 Docker Engine 1.11
开始目前处于试验阶段
我有一个通过 UDP 多播发送消息的应用程序,我一直试图将其置于 docker 之下。我一直 运行 试图从 docker 容器发送多播数据包。
我已经能够通过 运行 docker 容器上的 --net=host
选项发送消息。但是,我想坚持使用网桥配置。
我想深入了解需要做什么才能通过标准 docker 网桥配置发布消息。我正在尝试使用端口 16000
在 239.9.60.250
上发布消息。我尝试通过 docker run
.
16000
-P 0.0.0.0:16000:16000/udp
这并没有给我任何行为上的改变,我的主机也没有看到任何多播流量。
Docker 网络驱动程序没有 IGMP/PIM 支持,因此您应该真正建立从容器到物理 switch/router 的直接第 2 层连接。
正如您自己发现的那样,docker 的默认桥接网络在这里对您没有帮助。
我还没有用多播测试过它,但是你应该可以用 Pipework 来实现它。
macvlan driver 应该可以帮助您解决问题,但从 Docker Engine 1.11
开始目前处于试验阶段