无法连接到在Docker容器中运行的mongodb

时间:2020-03-09 09:21:35

标签: mongodb docker robo3t

我有一个运行的mongoDB DB容器,但无法使用Robo 3T连接到它,出现以下错误。

enter image description here

Container is running and waiting for connection at 27017

Docker ps shows the same

connection settings in robo 3T

我在这里缺少什么的任何帮助。

2 个答案:

答案 0 :(得分:0)

将mongodb端口绑定到您的Docker主机,以便使用localhost从主机访问它-

docker run -d -p 27017:27017 ....

我怀疑您缺少-p 27017:27017

答案 1 :(得分:0)

查看docker ps输出的PORTS列:

PORTS
27017/tcp

未指定映射(->符号)。这意味着容器端口不会在docker网络外部发布。

两种解决问题的方法:

  • 不要将localhost指定为主机名,而是使用容器ip:您可以使用docker inspect CONTAINER来检索它。如果您使用cygwin:docker inspect CONTAINER | grep IPAddress
  • 在主机上发布mongo容器端口。您可以使用-p的参数-p HOST_PORT:CONTAINER_PORT将其发布在同一端口上,也可以不发布。
    例如,使用相同的端口:docker run -d -p 27017:27017 mongo:latest

您可以在docker ps上看到端口已在主机上发布:

PORTS
0.0.0.0:27017->27017/tcp