所以我想连接到我的主机上运行的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.
原文链接:https://www.f2er.com/docker/435911.html您还可以使用特殊DNS名称docker.for.mac.localhost或docker.for.windows.localhost