Docker在iptables中打开端口(rabbitmq)

问题

$somemgtport1567215672我无法从15672访问它(通过HTTP的rabbitmqpipe理界面)。

但是,似乎我正确地使用了-p标志,因为curl https://localhost:$somemgtport按预期工作(以及对$ someport的amqp调用)。

运行时,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命令?

注意:我需要比默认端口更多的端口,因为我在同一台机器上运行了2个rabbitmq实例。


更新 – 这是netstat -pln的部分输出( someport=55001somemgtport=65002 ):

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

netstat -pln | grep 15672 netstat -pln | grep 15672没有输出

弃用声明 :这个问题已经过时了,不pipe什么时候创build它现在都不存在了。 自从问题发布以来,Docker停止使用iptables(实现端口redirect)很久以前,networking层被重写了至less两次。