【发布时间】:2015-02-06 01:46:54
【问题描述】:
经过仔细研究、测试和摆弄,我只能通过从 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 容器设置自行配置。
【问题讨论】:
-
为什么docker桥不够好?
-
无法以我可以指定要附加到哪个网络接口的方式配置 docker 网桥。这意味着每个网络接口我不能有单独的容器。
-
您能发布您的解决方案吗?我需要类似的东西在 docker 容器中运行 DHCP 实例
标签: udp docker broadcast raw-sockets