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