无法连接到 docker 容器中的 mongodb

Unable to connect to mongodb in docker container

尝试连接到 Docker 容器中的 MongoDb 时,连接被拒绝。

  1. 这是 docker ps 的输出:

docker ps CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS
NAMES 21063296d7d8 mongo "/entrypoint.sh mongo"
44 minutes ago Up 29 minutes 0.0.0.0:57017->27017/tcp
mongodb-dev

  1. 这是 docker 日志的片段 mongodb-dev:

2015-11-28T05:36:36.363+0000 I CONTROL [initandlisten] db version v3.0.7 2015-11-28T05:36:36.363+0000 I CONTROL [initandlisten] git version: 6ce7cbe8c6b899552dadd907604559806aa2e9bd 2015-11-28T05:36:36.363+0000 I CONTROL [initandlisten] build info: Linux ip-10-183-78-195 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 BOOST_LIB_VERSION=1_49 2015-11-28T05:36:36.363+0000 I CONTROL [initandlisten] allocator: tcmalloc 2015-11-28T05:36:36.363+0000 I CONTROL [initandlisten] options: {} 2015-11-28T05:36:36.365+0000 I NETWORK [initandlisten] waiting for connections on port 27017

  1. 这是使用端口 57017
  2. 连接到 docker 中的 MongoDB 时的错误

mongo localhost:57017

MongoDB shell version: 3.0.7 connecting to: localhost:57017/test 2015-11-27T22:09:22.733-0800 W NETWORK Failed to connect to 127.0.0.1:57017, reason: errno:61 Connection refused 2015-11-27T22:09:22.734-0800 E QUERY Error: couldn't connect to server localhost:57017 (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

请让我知道我在这里遗漏了什么。感谢您的帮助!

这取决于您是直接在 Linux 主机上还是在 Mac 上使用 docker。
在后一种情况下,您需要确保在 VirtualBox 连接设置中将端口转发 57017,正如我在“How to connect mysql workbench to running mysql inside docker?

中提到的那样
VBoxManage controlvm "boot2docker-vm" --natpf1 "tcp-port57017 ,tcp,,57017,,57017"
VBoxManage controlvm "boot2docker-vm" --natpf1 "udp-port57017 ,udp,,57017,,57017"