无法连接到泊坞窗容器中的mongodb

我已经构build了一个运行MongoDB实例的Docker容器,它应该暴露给主机。 但是,当我想从主机连接到Mongodb容器,连接将被拒绝。

这是我的Dockerfile:

FROM mongo:latest RUN mkdir -p /var/lib/mongodb && \ touch /var/lib/mongodb/.keep && \ chown -R mongodb:mongodb /var/lib/mongodb ADD mongodb.conf /etc/mongodb.conf VOLUME [ "/var/lib/mongodb" ] EXPOSE 27017 USER mongodb WORKDIR /var/lib/mongodb ENTRYPOINT ["/usr/bin/mongod", "--config", "/etc/mongodb.conf"] CMD ["--quiet"] 

/etc/mongodb.conf:

这是MongoDB的configuration文件,我在这里明确地绑定了IP 0.0.0.0,因此127.0.0.1可能是我的问题的根源(但事实并非如此)

 systemLog: destination: file path: /var/log/mongodb/mongo.log logAppend: true storage: dbPath: /var/lib/mongodb net: bindIp: 0.0.0.0 

docker容器正在运行,但是主机的连接是不可能的:

 host$ docker run -p 27017:27017 -d --name mongodb-test mongodb-image host$ docker ps $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6ec958034a6f mongodb-image "/usr/bin/mongod --co" 4 seconds ago Up 3 seconds 0.0.0.0:27017->27017/tcp mongodb-test 

findIP地址:

 host$ docker inspect 6ec958034a6f |grep IPA "SecondaryIPAddresses": null, "IPAddress": "172.17.0.2", "IPAMConfig": null, "IPAddress": "172.17.0.2", 

尝试连接:

 host$ mongo 172.17.0.2:27017 MongoDB shell version v3.4.0 connecting to: mongodb://172.17.0.2:27017 2016-12-16T15:53:40.318+0100 W NETWORK [main] Failed to connect to 172.17.0.2:27017 after 5000 milliseconds, giving up. 2016-12-16T15:53:40.318+0100 E QUERY [main] Error: couldn't connect to server 172.17.0.2:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:234:13 @(connect):1:6 exception: connect failed 

当我进入容器,我可以连接到mongo并成功列出testing数据库。

使用localhost而不是ip,允许连接。

将它与暴露的端口组合在一起:localhost:27017

我按照评论中所述的方式testing了解决scheme,并且工作正常。