docker - docker 中的 UDP 端口映射似乎不适用于我的 dot net 5 应用程序
问题描述
我有一个 dot net 5 应用程序在端口 5002 上侦听 UDP 连接。
当我直接在我的机器上运行应用程序时,我可以使用 UDP 成功连接:
- 来自同一台机器,使用 localhost 或 127.0.0.1 和端口 5002
- 从网络上的任何机器,使用主机的本地 IP 和端口 5002
但我想做的是在 docker 容器中运行我的应用程序。所以我使用 dockerfile 来构建我的应用程序并放置在基于以下图像的容器中:mcr.microsoft.com/dotnet/sdk:5.0
然后我使用 Bridge 网络模式运行容器,但在尝试从主机连接时无法使用 UDP:
- 从使用 localhost 或 127.0.0.1 和端口 5002 的主机:无法访问
- 从容器内部使用 localhost 或 127.0.0.1 和端口 5002:可以成功到达
请注意,我在 docker-compose 文件中映射端口:
ports:
- "5000:5000"
- "5001:5001"
- "5002:5002/udp"
端口 5000 和 5001 的映射运行良好,因为我能够使用来自主机的这些端口向我的应用程序发送 HTTP 请求。
但是我该怎么做才能使 UDP 端口映射在端口 5002 上工作?
解决方案
推荐阅读
- php - 如何将数据库中的数据作为数组调用,然后回显数组中的每个值?
- google-sheets-formula - 在现有公式中增加图纸编号
- sql - Laravel 查询 - 从 3 个不同的表中计数和分组
- symfony - Symfony 4 和 Mercure 与 Docker - 无法连接到服务器
- python - Django ValueError - 没有足够的值来解包(预期 2,得到 1)元组错误列表
- python - 如何绕过 Python 请求“请求远程结束关闭连接而没有响应”的错误
- php - SQL Server查询返回输出参数为空白数组
- bash - 提取数字并使用 sed 重新插入
- c++ - 如何正确编写mysql查询?
- javascript - 如何正确更改状态?(只读错误)