11

我有一个运行 python uwsgi 应用程序的 docker 容器。该应用程序发送一个唤醒局域网广播数据包以唤醒本地网络中的一台电脑。

它可以在不使用 docker(直接在服务器上的普通 uwsgi 应用程序)的情况下正常工作,但使用 docker 将无法正常工作。

我暴露了端口 9/udp 并将其绑定到主机系统的端口 9。

我在这里想念什么?或者换句话说,如何从 docker 容器向外部网络发送局域网唤醒命令?

4

1 回答 1

2

似乎来自 docker 的 UDP 广播没有被正确路由(可能只在容器本身中广播,而不是在主机上)。

您无法直接发送 UDP WoL 消息,因为您尝试控制的设备处于“离线”状态,它不会显示在路由器的 ARP 表中,因此无法传递直接消息。

您可以尝试设置 (CLI)--network host或 (compose) network_mode: host

如果您觉得这可能会损害安全性(因为您的容器/主机网络更直接“连接”)或以其他方式干扰您的容器;您可以创建/使用单独的“WoL”容器。

于 2021-04-09T09:11:06.893 回答