Exposing Mapped JMX Ports from Multiple Containers

We are using Oracle Linux v. 7 (based on RedHat 7.3)

We’ve started these containers manually at various times, so there doesn’t appear to be any correlation
with the time between starts. The case described above always fails.

Yes, the ports are free (and we’ve tried different ports)
We are using Java Opts to set the options. All of the options
mentioned in the first post, like "-Dcom.sun.management.jmxremote.port=3968"
are defined in JAVA_OPTS inside the container when the containerized Java processes start.

The problem seems pretty clearly related to port mapping by docker.
I have no problem if I assign each java process its own unique JMX port inside the container,
and use a unique one-to-one mapping like “-p 3968:3968” when I launch each container.

The problem only shows if I assign the same JMX port (e.g. 3968) inside each container and then try to
map it externally, by using something like “-p 4168:3968” on one and “-p 4268:3968” on another.
The ports to show as “open” on the Linux host, but I cannot connect to them via jconsole.

If the ports are defined internal to the container using "-Dcom.sun.management.jmxremote.port=4168"
and the external mapping is “-p 4168:4168” then it works just fine. So clearly the ports are all availble.
It just appears the the Docker mapping mechanism may not be working correctly for these JMX ports

Note: mapping for other types of ports is working fine !.. it is only JMX that shows this issue.
We use multiple ports for other purposes and they all map just fine. This seems to be a Docker/JMX issue.

Perhaps someone from Docker could comment on this ?