经过仔细的研究、测试和摆弄,我只能找到通过从 IP/端口转发来将 Docker 容器连接到给定接口的方法。这可以通过添加来完成-p Host-IP:Host-Port:Container-Port
to a docker run
命令。
我有一个侦听 UDP 广播 (255.255.255.255) 的应用程序,并且无法以这样的方式配置转发:我的容器将接收这些广播,而不转发我关心的端口上的所有网络流量(无论通过哪个接口)它进来了),即:-p Host-Port:Container-Port
.
可以使用以下方式配置容器--net=host
只需编写我的代码来绑定到给定的接口,我已经完成并测试了该接口,但这仍然违背了容器的主要思想。目标是让同一应用程序的多个容器侦听不同的网络接口(如设备,而不是地址)。
关于我如何做到这一点有什么想法吗?
EDIT #1:再考虑一下之后,可能在所需的接口上设置桥就足够了,但我不信任操作系统通过它发送广播数据包。请继续关注我进行更多测试。
EDIT #2:数据包通过网桥发送就可以了。但是,该网桥被配置为 Docker 默认网桥。我一直无法弄清楚如何在不同的桥上运行容器。看到一些注释指出将网络设置为--net=none
并通过 lxc 容器设置自行配置。
默认情况下,docker run 命令会发布 tcp 端口。
尝试指定udp的使用:
docker run -p Host-Port:Container-Port
/udb ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)