无法通过mac上的mono客户端连接到Mongo docker实例

时间:2015-07-27 11:26:34

标签: mongodb docker

我安装了Mongo docker镜像并使用这些命令运行它(安装了mac boot2docker)

docker pull mongo

docker run --name some-mongo -d mongo

但现在我想通过运行mongo客户端连接到它:

mongo --port 27017 --host 127.0.0.1

但我收到此错误消息:

MongoDB shell version: 3.0.4
connecting to: 127.0.0.1:27017/test
2015-07-27T14:22:24.088+0300 W NETWORK  Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
2015-07-27T14:22:24.094+0300 E QUERY    Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
    at connect (src/mongo/shell/mongo.js:181:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:181
exception: connect failed

我很清楚,Docker无法公开端口,因为本地主机上的telnet到27017也失败了。

我做错了什么?

2 个答案:

答案 0 :(得分:5)

你有两个问题:

就像h3nrik所说,你应该连接到boot2docker虚拟机地址。如果您不知道它,请使用以下命令:

id

首先,您的端口尚未打开

您的id命令应如下所示:

name

答案 1 :(得分:4)

您应该使用boot2docker虚拟机IP地址而不是127.0.0.1。通常是192.168.59.103。您可以验证执行boot2docker ip时应连接的IP。

更新:我发现您没有按容器run语句导出任何端口:

docker run --name some-mongo -d mongo

当然没有暴露任何端口,您无法连接。尝试在运行后重新连接(根据您的要求,您可以根据mongodb documentation添加更多端口):

docker run --name some-mongo -d -p 27017:27017  mongo