无法连接到docker容器中运行的mongoDB

以下示例: https : //docs.docker.com/engine/examples/mongodb/

当试图连接到mongoDB: mongo ip:27017 (其中ip是boot2docker ip的名称)+ docker ps的端口号:

27017 / TCP
或与-P
0.0.0.0:49155->27017/tcp

无论哪种方式,我得到以下错误:

警告:无法连接到IP:27017,原因:错误:61连接被拒绝

错误:无法连接到服务器IP:27017(IP),在src / mongo / shell / mongo.js连接尝试失败:148例外:连接失败

如果你指定了正确的端口,但仍然无法连接到在docker中运行的mongodb(像我一样),请确保在连接URL中使用服务名称(或容器名称),例如mongodb://mongodb_service:27017/mydb ,它是在您docker-compose.yml定义的:

 services: mongodb_service: image: mongo 

我正在使用hostname值,这不是正确的事情。 您可以通过在Aliases部分docker inspect mongodb_service来validation这一点。

我正在使用端口27017而不是49155(doh,端口转发)

0.0.0.0:49155->27017/tcp

感谢蔡司

如果您在Mac上并使用Docker Machine,请执行以下操作:

 1.获取运行docker守护进程的虚拟机的名称
 $ docker-machine ls

 2.获取虚拟机的IP信息
 $ docker-machine env

 3.将mongo客户端连接到VM ​​IP和mongo映射端口
 $ mongo VM-IP:端口