我安装了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也失败了。
我做错了什么?
答案 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