首页 文章

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

提问于
浏览
18

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

3 回答

  • 17

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

    services:
      mongodb_service:
        image: mongo
    

    我正在使用 hostname 值,这不是正确的事情 . 您可以通过查看 Aliases 部分中的 docker inspect mongodb_service 来验证这一点 .

  • 9

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

    0.0.0.0:49155->27017/tcp

    感谢ZeissS

  • 12

    如果您使用的是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
    

相关问题