Назад | Перейти на главную страницу

Открытые порты Docker в iptables (rabbitmq)

Эта проблема

когда $somemgtport отличается от 15672 Я не могу получить к нему доступ (интерфейс управления rabbitmq через HTTP) из внешнего мира.

Но похоже, что я использовал -p пометить правильно, потому что curl https://localhost:$somemgtport работает должным образом (как и вызовы amqp для $ someport).

При запуске цепочка iptables DOCKER выглядит следующим образом:

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

Таким образом, он не открывает порты $ someport и $ somemgtport, а скорее порты, которые соответствуют «внутренней части» контейнера: 5671 и 15672 (те из rabbitmq).

=> мне кажется, что он делает в точности противоположное тому, что я ожидал ...!

Что я сделал не так с docker run команда?

NB: Мне нужны другие порты, кроме портов по умолчанию, потому что я запускаю 2 экземпляра rabbitmq на одном компьютере.


Обновление - вот частичный вывод netstat -pln (с участием someport=55001 и somemgtport=65002):

tcp6       0      0 :::55001                :::*                    LISTEN      29613/docker-proxy
tcp6       0      0 :::65002                :::*                    LISTEN      29622/docker-proxy

netstat -pln | grep 15672 не имеет выхода

Уведомление об устаревании: Этот вопрос устарел, того, что могло его создать в то время, больше не существует. Docker давно перестал использовать iptables (для перенаправления портов), сетевой уровень переписывался с нуля как минимум дважды с момента публикации вопроса.