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

Chr*_* G. 22 mongodb docker

以下示例: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异常:连接失败

fal*_*ypt 21

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

services:
  mongodb_service:
    image: mongo
Run Code Online (Sandbox Code Playgroud)

我正在使用这个hostname值,这不是正确的事情.你可以通过查看验证这一点docker inspect mongodb_serviceAliases部分.

  • 这对我不起作用。也许有 mongo docker 镜像的稳定版本吗?这里有马车马车马车的东西。 (2认同)

Chr*_* G. 13

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

0.0.0.0:49155->27017/tcp

感谢ZeissS

  • 那些(像我一样)对答案感到困惑的人.使用以下连接.**$ mongo IP:49155** (4认同)

小智 11

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

1. Get the name of the VM running docker daemon
$ docker-machine ls

2. Get the VM's IP info
$ docker-machine env 

3. Connect with the mongo client to the VM IP and the mongo mapped port
$ mongo VM-IP:port

  • 如果您使用Docker的VirtualBox/docker-machine(Windows/Mac)版本,这是一个有效的答案. (2认同)