代码之家  ›  专栏  ›  技术社区  ›  mdasari

从docker容器向主机公开SCTP端口

  •  0
  • mdasari  · 技术社区  · 6 年前

    我的docker容器(sctp服务器)正在端口号为36412的sctp上运行。但是,主机上的sctp客户端无法与容器通信。如何将此端口从容器公开到主机?它和TCP/UDP不一样吗? 当我跑的时候 docker run -p 36412:36412 myimage

    Invalid proto: sctp
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   David Maze    6 年前

    reading source code 的一般形式 docker run -p 选项是

    docker run -p ipAddr:hostPort:containerPort/proto
    

    关键的是,“协议”是其中的一部分 is allowed to be 任何 tcp , udp ,或 sctp ;小写,默认为 tcp协议 如果未指定。

    对于您的应用程序,您应该能够

    docker run -p 36412:36412/sctp ...
    
        2
  •  -1
  •   Wesley Rolnick    6 年前

    运行时使用-p标志将主机上的开放端口映射到容器端口。下面的示例将主机上的端口36412映射到容器中的36412。

    docker run -p 36412:36412 mysctpimage

    要查看容器上运行的端口及其映射到的位置,请执行以下操作:

    docker port <containerId>

    这将告诉您容器映射到主机的端口和协议。例如,运行一个简单的WebApi项目可能会产生: 80/tcp->0.0.0.0:32768

    Docker Port Documentation

    How to publish or expose a port when running a container