如何从Docker容器发送和接收SSDP?

问题描述

我有一个服务在使用docker-compose创建的docker容器中运行,该服务需要发现本地网络上的设备。它使用UDP的239.255.255.250:1982上的SSDP来执行此操作。下面是我当前的docker-compose.yml

version: "3.1"

services:
  express:
    image: node:12
    container_name: express
    environment: 
      - PORT=8080
    ports: 
      - "8080:8080"
      - "1982:1982/udp" # Discovery port
    sysctls: 
      - net.ipv4.conf.all.forwarding=1
      - net.ipv4.ip_forward=1
    volumes: 
      - ./server:/var/lib/server
    working_dir: /var/lib/server
    command: ["npm","run","start:watch"]

浏览了docker网站上的一些文档后,我尝试了一些sysctl设置以及将端口映射到UDP主机。据我所知,这些数据包根本没有离开容器。为了验证这一点,我已经在Wireshark上观察了我的网络适配器是否向1982端口发送了udp数据包,并且只能提取从docker容器外部运行的代码发送的数据包。

我也尝试过network_mode:“ host”,但是它不起作用。如果可以帮助,我也不想使用该网络模式。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...