【问题标题】:How to forward a UDP port from a devcontainer?如何从 devcontainer 转发 UDP 端口?
【发布时间】:2021-08-31 16:58:08
【问题描述】:

我正在尝试将 Microsoft (https://github.com/microsoft/vscode-dev-containers/tree/main/containers/javascript-node-mongo/.devcontainer) 的“Node.js & Mongo DB”开发容器与我在 Nodejs 中制作的 udp 服务器一起使用。

问题如下:当我尝试在 devcontainer.json 示例中转发端口时:"forwardPorts": [1117].

当我真正想转发 1117/udp 时,它似乎只转发 1117/tcp。

我正在努力为这个项目做这项工作:https://github.com/QuentinGruber/h1z1-server/blob/master/.devcontainer/devcontainer.json

【问题讨论】:

    标签: docker visual-studio-code docker-compose dockerfile vscode-devcontainer


    【解决方案1】:

    documentation 对于带有forwardPorts 标签的暴露端口所使用的协议有点模糊:

    转发端口

    • 数组
    • 应从容器内部转发到本地计算机的一组端口。

    因此,我建议尝试使用较旧的 appPort 标签,因为当我查看 here 时,它说他们正在使用 docker-compose 语法,这意味着您可以像这样指定端口和协议:

    码头工人撰写:

    ports:
    - "3000"
    - "8921:5000"
    

    devcontainers.json:

    "appPort": [ 3000, "8921:5000" ]
    

    在你的情况下:

    "appPort": [ "1117:1117/udp" ]
    

    根据docs,当您想要访问应用程序(或公开端口)不仅仅是localhost 时,使用appPort 标记也很有用

    【讨论】:

      【解决方案2】:

      按照文档,您可以使用此行转发 udp 协议

      docker run -p 53160:53160/udp docker/getting-started
      

      所以尝试将此添加到您的配置文件中,应该可以工作。

      参考:docker network

      【讨论】:

      • 虽然这对于 docker cli 是正确的,但这不适用于 devcontainer.json 中的 forwardPorts 设置。查看其他答案以获得真正的解决方案:stackoverflow.com/a/69004668/595764
      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 2015-02-20
      • 2021-12-30
      • 2018-05-08
      相关资源
      最近更新 更多