我正在编写一个 python 应用程序,它不断地将 UDP 消息发送到具有其他主机和固定 IP 的预定义网络。我编写了 python 应用程序并将其 dockerized。该应用程序在 docker 中运行良好,没有问题。
不幸的是,我无法将 UDP 消息从我的 docker 发送到主机,因此它们将被发送到网络中的其他主机。接收消息也是如此。现在我不知道如何设置我的 docker,所以它正在从网络中具有固定 IP 地址的主机接收 UDP 消息。
我尝试使用 --net host
设置我的 docker 网络,我将所有 UDP 消息从我的 docker 容器通过本地主机发送到我的主机。这也很好用。我缺少可以将消息发送到“外部世界”的链接。我试着用图片描述我的问题。
我的问题:我必须如何为我的 docker/主机设置网络通信,以便它可以通过 UDP 从网络中的其他主机接收消息? 谢谢
最佳答案
所以我做了很多实验,然后我发现,我只需要运行带有网络配置的 docker 容器作为主机。我容器中的 UDP 套接字绑定(bind)到我的主机的 IP 地址,因此只需要链接到主机的网络。每个正在为同样的问题而苦苦挣扎的人,只需运行
docker run --network=host <YOURCONTAINER>
关于python - docker 容器 : UDP Communication with other hosts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54360408/