我设置了一个容器来侦听我的 wi-fi IP 地址 (192.168.200.18) 的 UDP 端口 6789 中的流量,以及一个将信息发送到 192.168.200.18:6789/udp 的外部设备。
我可以使用
netstat -ap UDP
看到我的计算机正在侦听该端口。我已经使用UDP测试工具检查过我确实收到了数据包。然而,这些数据包永远不会进入容器。
容器连接到在 .yaml 文件中创建的 docker 网络
networks:
mynetwork:
name: mynetwork
driver: bridge
在我用来运行容器的 compose.yaml 文件中,我包含以下说明来打开/重定向端口并连接到 docker 网络。
ports:
- "192.168.200.18:6789:6789/udp"
networks:
- mynetwork
如果我从 Docker Desktop 复制 docker run 命令,则会有
-p 192.168.200.18:6789:6789/udp
和 --network=mynetwork
选项。所以看来设置没有任何问题。但我仍然没有收到集装箱里的任何包裹。
这也部署在远程虚拟机中,它工作正常,我认为问题出在我的工作笔记本电脑的网络设置中,但我无法弄清楚是什么导致了问题。
我也见过同样的问题。也看到了相反的情况:UDP 流量源自容器,但从未流出。重新启动 docker 会有所帮助,但如果能仔细观察一下那就太好了。