【发布时间】:2016-09-09 22:08:29
【问题描述】:
我们有一个 dockerized 服务器应用程序,它通过侦听端口 6969 上的多播数据包来自动发现网络上的物理设备。所以我们需要我们的 docker 容器能够接收来自主机外部设备的这些数据包,通过主机,并进入容器。我见过some similar issues 并完成a lot of reading 但我仍然无法让服务器响应这些多播数据包。
我坐在 Wireshark 上监视网络流量,但我不是专家。我知道 Docker 创建了一个MASQUERADE 地址以使流量看起来像是来自 Docker 网关,所以当我观看veth 时,我看到的大多是172.17.0.1 和172.17.0.2 之间的对话,尽管我的服务器无法检索任何内容有关网络上设备的信息。 (如果我在 docker 之外运行,当然没有问题。)
我不能使用--net=host,因为和其他人一样,我们使用--link 功能。我尝试了以下变体...
docker run --name app -p 6969:6969 -d me/app:latest-
docker run --name app -p 0.0.0.0:6969:6969 -d me/app:latest(这个我本可以发誓工作过一次但现在不行了?) docker run --name app -p 0.0.0.0:6969:6969/udp -d me/app:latestdocker run --name app -p 255.255.255.255:6969:6969 -d me/app:latest
您可以提供的任何帮助或见解将不胜感激。
【问题讨论】:
标签: networking docker wireshark multicast