如何在 Docker 上发布 UDP 端口?
Posted
技术标签:
【中文标题】如何在 Docker 上发布 UDP 端口?【英文标题】:How do I publish a UDP Port on Docker? 【发布时间】:2015-02-20 04:21:34 【问题描述】:如何将 UDP 端口从我的 Docker 容器转发到主机?
【问题讨论】:
【参考方案1】:只是想我会参与 docker-compose 配置。
ports:
- "9955:9955/udp"
【讨论】:
【参考方案2】:使用 -p 标志并将/udp
后缀添加到端口号。
-p 53160:53160/udp
完整的命令
sudo docker run -p 53160:53160 \
-p 53160:53160/udp -p 58846:58846 \
-p 8112:8112 -t -i aostanin/deluge /start.sh
如果您在 Mac 上运行 boot2docker,请务必将 boot2docker 上的相同端口转发到您的本地计算机。
您还可以在Dockerfile
中记录您的容器需要使用EXPOSE 接收UDP(EXPOSE 不发布端口):
EXPOSE 8285/udp
这里是容器文档中涵盖的更多 Docker 网络信息的链接: https://docs.docker.com/config/containers/container-networking/ (由 cmets 中的 Old Pro 提供)
【讨论】:
(咆哮)在官方文档中根本没有,哇。 "-p=[] : 发布一个容器端口或一系列端口到主机格式:ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | containerPort"。虽然官方例子中提到了“-p 1234-1236:1234-1236/tcp”,但整体上没有匹配到“udp”或“protocol”page。 @AlexanderGonchiy 不要原谅 docker run 的文档,但Container Networking 文档中介绍了公开端口的一般格式。 Expose 应该只是端口/原型,而不是像你有工作发布那样的端口对。而且expose不发布端口,也不需要发布端口,它是文档。以上是关于如何在 Docker 上发布 UDP 端口?的主要内容,如果未能解决你的问题,请参考以下文章