我有一个运行python uwsgi app的docker容器。应用程序发送唤醒lan广播数据包以唤醒本地网络中的电脑。
没有使用docker(直接在服务器上使用普通的uwsgi应用程序),它可以正常工作,但是使用docker它将无法正常工作。
我暴露了端口9 / udp并将其绑定到主机系统的端口9上。
我在这里缺少什么?或者换句话说,如何将dock命令从docker容器发送到外部网络?
答案 0 :(得分:2)
来自 docker 的 UDP 广播似乎没有被正确路由(可能只在容器本身中广播,而不是在主机上广播)。
您无法直接发送 UDP WoL 消息,因为您尝试控制的设备处于“离线”状态,它不会显示在路由器的 ARP 表中,因此无法传递直接消息。
>您可以尝试设置 (CLI) --network host
或 (compose) network_mode: host
。
如果您认为这可能会危及安全(因为您的容器/主机网络更直接地“连接”)或以其他方式干扰您的容器;您可以创建/使用单独的“WoL”容器。