无法通过mac上的mono客户端连接到Mongo 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也失败了。
我做错了什么?
你有两个问题:
像h3nrik说,你应该连接到boot2docker虚拟机的地址。 如果您不知道,请使用以下命令:
boot2docker ip
而你的港口并不是开放的。
您的Docker run
命令应该如下所示:
docker run -p 27017:27017 --name some-mongo -d mongo
您应该使用boot2docker虚拟机的IP地址,而不是127.0.0.1
。 通常为192.168.59.103
。 你可以validation你应该连接哪个IP来执行boot2docker ip
。
更新 :我发现你不能通过你的容器run
语句导出任何端口:
docker run --name some-mongo -d mongo
当然,没有任何端口暴露你不能连接。 尝试在运行后重新连接(根据您的要求,您可以根据mongodb文档添加更多的端口):
docker run --name some-mongo -d -p 27017:27017 mongo