我的 docker 容器(sctp 服务器(在端口号 36412 的 sctp 上运行。但是,我在主机上的 sctp 客户端无法与容器通信。如何将此端口从容器公开到主机?它与TCP/UDP不同吗? 当我运行docker run -p 36412:36412 myimage
时,我得到以下错误。
Invalid proto: sctp
从读取源代码来看,docker run -p
选项的一般形式是
docker run -p ipAddr:hostPort:containerPort/proto
关键是,其中的"协议"部分允许是tcp
、udp
或sctp
中的任何一个;它是小写的,如果未指定,则默认为tcp
。
看起来对于您的应用程序,您应该能够
docker run -p 36412:36412/sctp ...
运行 to 时使用 -p 标志将主机上的开放端口映射到容器端口。 以下示例将主机上的端口 36412 映射到容器中的 36412。
docker run -p 36412:36412 mysctpimage
要查看容器上运行的端口及其映射到的位置,请执行以下操作:
docker port <containerId>
这将告诉您容器映射到主机的端口和协议。 例如,运行一个简单的 WebAPI 项目可能会产生: 80/tcp -> 0.0.0.0:32768
码头工人端口文档
如何在运行容器时发布或公开端口