将Docker容器连接到networking接口/设备而不是IP地址

经过仔细研究,testing和摆弄之后,我只能通过从IP /端口转发来find将Docker容器连接到给定接口的方法。 这可以通过将-p Host-IP:Host-Port:Container-Portdocker run命令来完成。

我有一个监听UDP广播(255.255.255.255)的应用程序,并且无法configuration转发,使得我的容器将接收到这些广播,而不转发所关注的端口上的所有networking通信(不pipe通过哪个接口它来),即-p Host-Port:Container-Port

可以使用--net=host来configuration容器,只需将我的代码写入绑定到给定的接口,我已经完成并testing了这个接口,但仍然违背了容器的主要思想。 目标是让同一应用程序的多个容器在不同的networking接口上进行监听(如在设备中,而不是在地址上)。

关于如何做到这一点的任何想法?

编辑#1 :思考了这一点之后,有可能在所需的接口上设置网桥就足够了,但我不相信操作系统通过它发送广播数据包。 敬请关注,因为我执行更多的testing。

编辑#2 :数据包通过桥发送就好了。 但是,网桥被configuration为Docker默认网桥。 我还没有弄清楚如何在不同的网桥上运行容器。 看了一些笔记,指出将networking设置为--net=none并通过lxc容器设置自己configuration它。

默认情况下,docker run命令发布tcp端口。 尝试指定使用udp:

docker run -p Host-Port:Container-Port / udb