【问题标题】:Dynamic listening ports inside Docker containerDocker 容器内的动态监听端口
【发布时间】:2016-05-27 06:46:52
【问题描述】:

我有一个应用程序,在使用其默认端口建立一些连接后,它开始打开(侦听)新的 RANDOM 端口以仅处理现有连接,然后丢弃它们(视频通话)。

它还在通信协议中交换它的IP地址和端口,我能够解决IP地址问题,但仍然无法找到一种方法来动态告诉主机的IPTABLES在它们被打开时打开相同的端口在 Docker 容器中打开,有人有什么想法吗?

【问题讨论】:

  • 你正在执行什么命令来启动容器?

标签: linux docker iptables


【解决方案1】:

--net=host 选项,对于 docker run 命令,应该启用您正在寻找的行为 - 请注意,它被认为是不安全的,但我真的没有看到任何其他方法这样做。

参见docker run 手册页:

   --net="bridge"
      Set the Network mode for the container
                                  'bridge': create a network stack on the default Docker bridge
                                  'none': no networking
                                  'container:<name|id>': reuse another container's network stack
                                  'host': use the Docker host network stack. Note: the host mode gives the container full access to local system services  such  as  D-bus
   and is therefore considered insecure.
                                  '<network-name>|<network-id>': connect to a user-defined network

【讨论】:

  • 谢谢,它通过在容器内提供主机网络解决了这个问题。
  • 这听起来像是一个解决方案,但是,如果考虑到可扩展性,运行多个相同的容器实例将由于端口正在使用而无法工作,除非容器将在不同的 IP 上运行。
猜你喜欢
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多