Docker将端口仅开放给主机


99

码头工人能够仅将端口公开给主机,而不公开外部。

我需要放置一个运行mongo数据库的docker,我希望只能从主机访问它,但是我需要链接主机端口27017。

这是可能的,还是唯一可能的方法是更改​​防火墙的定义?

Answers:


140

当然,只需将其绑定到localhost,如下所示:

泊坞窗运行-p 127.0.0.1:27017:27017

另外:您的主机也可以通过其IP与每个容器正常通信。使用docker inspect $ID得到一个JSON转储(旁边其他的东西),包含网络IP。


4
它是否类似于[1] docker run -p 27017:27017 -v / var / lib / mongodb / master:/ data mongo:storage_test / usr / bin / start-mongo [2] docker run -p 127.0.0.1: 27017:27017 ...?
鲁宾2014年

17
第二个选项绑定到本地主机,是的。第一个使该端口公开可用。如果您不希望使用静态端口,请使用127.0.0.1::27017
ZeissS 2014年

3
此解决方案似乎不适用于群体模式,请参阅此github问题
bsimpson53 '17

1
等价的docker-compose简单service-name: { ... ports: [ "127.0.0.1:27017:27017" ] }吗?
Groostav

1
我的docker-compose中的问题是什么,尽管仅绑定到本地主机,但是可以公开访问。stackoverflow.com/questions/50621936/…–
塔拉·普拉萨德·古隆
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.