从Docker容器连接到主机mongodb
所以我想连接到我在主机上运行的mongodb(DO Drop,Ubuntu 16.04)。它27017
在localhost 的默认端口上运行。
然后,我使用mup将我的Meteor应用程序部署在我的DO
Drop上,该DO
Drop使用docker在容器内运行Meteor应用程序。到目前为止,一切都很好。使用标准mongodb://...
连接URL将应用程序连接到mongodb。现在我有以下问题:
mongodb://...@localhost:27017...
显然不能在docker容器内工作,而localhost
不是主机的本地主机。
我已经阅读了很多关于stackoverflow的文章,我已经尝试使用:
--network="host"
-无法正常运行,因为它0.0.0.0:80
已经被使用或类似的东西(nginx代理)--add-host="local:<MY-DROPLET-INTERNET-IP>"
并通过连接mongodb://...@local:27017...
:也无法正常工作,因为我只能从本地主机访问我的mongodb,而不能从公共IP访问
这必须是一个普遍的问题!
localhost
在Docker容器中公开主机的正确方法是什么,以便我可以连接到主机上运行的服务?(包括其端口,例如27017)。
我希望有人能帮帮忙!
回答:
您可以使用:172.17.0.1
因为这是容器可以看到的默认主机ip。但是您需要配置Mongo来收听0.0.0.0
。
从docker 18.03起,建议连接到特殊的DNS名称host.docker.internal
对于以前的版本,您可以使用DNS名称docker.for.mac.localhost
或docker.for.windows.localhost
。
以上是 从Docker容器连接到主机mongodb 的全部内容, 来源链接: utcz.com/qa/418433.html