Docker在外部端口打开 - 没有打开好的端口
我正在运行一个rabbitmq docker实例,它使用5671端口。Docker在外部端口打开 - 没有打开好的端口
docker run -p 65000:5671 rabbitmq
如果我再做iptables -L -v
同时运行的实例,我得到以下泊坞窗链:
target prot opt in out source destination
ACCEPT tcp -- !docker0 docker0 anywhere xxx tcp dpt:5671
在我看来,那是码头工人做什么是错的,即。它应该修改iptables允许连接在65000而不是5671.
我在这里得到什么错?
NB:我希望能够在同一台机器上火的RabbitMQ的不同实例,所以:
- 我需要的“外部”端口(这里
65000
)是“变量” - 我希望能够在
docker run
- 时间来决定使用哪个端口(因此,要打开的端口)
你拿到的语法后到前,它的-p HOST_PORT:CONTAINER_PORT
,将从HOST_PORT
请求转发上 容器上的主机为CONTAINER_PORT
。
如果你只是指定一个端口,它将被认为是容器端口,并将分配给主机上随机的高编号端口,所以我认为-p 5671
会做你想做的。
或者,如果您在Dockerfile中使用了EXPOSE
语句,则可以使用不带参数的-P
标志自动将高编号端口分配给容器上的暴露端口。
请注意,docker port
命令将为容器提供端口映射。
真的倒退了!猜猜这些文档对于我的想法并不是很清楚,特别是我知道我也在使用'-p 127.0.0.1 :: 5672',这让我很困惑:这里localhost-available端口写在参数后面第二个':' – lajarre 2015-03-02 15:37:40
是的,说实话我不得不再次检查自己。 Docker中大部分东西都是主机;卷的工作方式相同。 – 2015-03-02 15:40:53
其实我认为我们都错过了一点:您的建议是错误的,如freenode #docker上的某人所述。我的确拥有它,而且我的确手动操作了我的iptables。 Docker不为外部映射做这件事 – lajarre 2015-03-02 17:47:10
为了感谢-1和接近的建议,我建议你去检查我的问题在ServerFault上收到的接近0级的活动:http://serverfault.com/questions/671870/docker-open- ports-in-iptables-rabbitmq;) – lajarre 2015-03-02 16:09:28
是的,有人似乎在投票结束所有码头问题。这不是很有帮助。 – 2015-03-02 18:08:47