I'm having a docker image based on
Nothing in my Dockerfile specifies anything about ports.
I bind the usual rabbitmq ports (5671, 5672 and 15672) to my custom ports by running my instance as follows:
docker run -d -p $someport:5671 -p 127.0.0.1::5672 -p $somemgtport:15672 myimage
There is nothing in my iptables INPUT chain, and the FORWARD chain is filled with the usual docker stuff.
$somemgtport is different from
15672 I can't access to it (the rabbitmq management interface via HTTP) from the outside world.
But it seems that I used the
-p flag correctly because
curl https://localhost:$somemgtport works as expected (as well as the amqp calls to $someport).
When running, the iptables DOCKER chain is the following:
Chain DOCKER (1 references) target prot opt in out source destination ACCEPT tcp -- !docker0 docker0 anywhere xyz tcp dpt:15672 ACCEPT tcp -- !docker0 docker0 anywhere xyz tcp dpt:5671 ACCEPT tcp -- !docker0 docker0 anywhere xyz tcp dpt:amqp
So it doesn't open the ports $someport and $somemgtport but rather the ports that are correspond to the "inside" of the container: 5671 and 15672 (the ones from rabbitmq).
=> it seems to me that it's doing exactly the contrary to what I would expect...!
What did I do wrong with the
docker run command?
NB: I want other ports than the default ones because I'm running 2 instances of rabbitmq on the same machine.
Update - Here's a partial output of
netstat -pln (with
tcp6 0 0 :::55001 :::* LISTEN 29613/docker-proxy tcp6 0 0 :::65002 :::* LISTEN 29622/docker-proxy
netstat -pln | grep 15672 has no output