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

前端之家收集整理的这篇文章主要介绍了node.js – 从docker容器连接到主机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

原文链接:https://www.f2er.com/docker/435911.html

猜你在找的Docker相关文章