加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

node.js – 从docker容器连接到主机mongodb

发布时间:2020-12-16 03:40:46 所属栏目:安全 来源:网络整理
导读:所以我想连接到我的主机上运行的mongodb(DO droplet,Ubuntu 16.04).它在localhost上的默认27017端口上运行. 然后我使用mup在我的DO Droplet上部署我的Meteor应用程序,该应用程序使用docker在容器内运行我的Meteor应用程序.到现在为止还挺好. 标准的mongodb:

所以我想连接到我的主机上运行的mongodb(DO droplet,Ubuntu 16.04).它在localhost上的默认27017端口上运行.

然后我使用mup在我的DO Droplet上部署我的Meteor应用程序,该应用程序使用docker在容器内运行我的Meteor应用程序.到现在为止还挺好.
标准的mongodb:// …连接url用于将应用程序连接到mongodb.
现在我有以下问题:

mongodb://…@ localhost:27017 …显然在docker容器内不起作用,因为localhost不是主机的localhost.

我已经在这上面阅读了很多stackoverflow帖子,我已经尝试过使用:

> –network =“host” – 没有工作,因为它说0.0.0.0:80已经在使用或类似的东西(nginx代理)
> –add-host =“local:< MY-DROPLET-INTERNET-IP>”并通过mongodb://…@local:27017 …连接:也没有工作,因为我只能从localhost访问我的mongodb,而不是从公共IP

这必须是一个常见的问题!

tl; dr – 在docker容器中公开hosts localhost的正确方法是什么,这样我就可以连接到主机上运行的服务了? (包括他们的港口,例如27017).

我希望有人能帮帮忙!

最佳答案
您可以使用:172.17.0.1,因为它是容器可以看到的默认主机IP.但你需要Mongo听0.0.0.0.

您还可以使用特殊DNS名称docker.for.mac.localhost或docker.for.windows.localhost

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读