Search code examples
linuxdockeriptables

Dynamic listening ports inside Docker container


I have an application which after making some connections using its default ports starts opening(listening) new RANDOM ports to handle just the existing connection and then drops them (Video calls).

It also exchanges its IP address and ports inside the communication protocol, I was able to solve the IP address issue, but still not able to find a way to dynamically tell IPTABLES of the host machine to open same ports when they are being opened inside Docker container, anybody has any ideas?


Solution

  • The --net=host option, for the docker run command, should enables the behavior you are seeking -- note that it is considered as insecure, but I really don't see any other mean of doing this.

    See the docker run man page:

       --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