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

try*_*ass 7 udp broadcast raw-sockets docker

经过仔细的研究,测试和摆弄,我只能通过从IP /端口转发来找到将Docker容器连接到给定接口.这可以通过添加完成-p Host-IP:Host-Port:Container-Port到一个docker run命令.

我有一个应用程序,侦听UDP广播(255.255.255.255),并且无法配置转发,以便我的容器将接收这些广播而不转发我关心的端口上的所有网络流量(无论通过哪个接口它来了),即:-p Host-Port:Container-Port.

可以配置容器--net=host并只编写我的代码以绑定到给定的接口,我已经完成并测试了,但这仍然违背容器的主要思想.目标是让同一个应用程序的多个容器侦听不同的网络接口(如设备,而不是地址).

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

编辑#1:在考虑了这个之后,有可能在所需的接口上建立桥接就足够了,但我不相信操作系统通过它发送广播数据包.随着我进行更多测试,请继续关注.

编辑#2:数据包通过网桥发送就好了.但是,桥接器配置为Docker默认桥接器.我无法弄清楚如何在不同的桥上运行容器.看到一些注意事项,指向--net=none通过lxc容器设置将网络设置为自己并自行配置.

小智 -2

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

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