无法连接到 docker 容器中的 mongodb
Unable to connect to mongodb in docker container
尝试连接到 Docker 容器中的 MongoDb 时,连接被拒绝。
- 这是 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
- 这是 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
- 这是使用端口 57017
连接到 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"
尝试连接到 Docker 容器中的 MongoDb 时,连接被拒绝。
- 这是 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
- 这是 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
- 这是使用端口 57017 连接到 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"