mongodb - 将 Robo 3T 连接到 Docker MongoDB 容器

标签 mongodb docker robo3t

作为解决 Hibernate OGM 连接问题的一部分,我想看看是否从 Robo 3T 进行连接。

我构建了 MongoDB 镜像并开始运行。

docker ps:

MacBook-Pro:GoStopHandle NOTiFY$ docker ps CONTAINER ID IMAGE
COMMAND CREATED STATUS PORTS NAMES 0375a68b9988 gostophandlemongodb:latest
"docker-entrypoint.s…" 5 seconds ago Up 4 seconds
0.0.0.0:32844->27017/tcp goStopHandleMongo

容器的IP地址是:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 0375a68b9988 172.17.0.2

我已进入“mongo”shell:

docker exec -it goStopHandleMongo mongo admin

我添加用户和密码:

> db.createUser(
...   {
...     user: "NOTiFY",
...     pwd: "MyPassword",
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
...   }
... )
Successfully added user: {
    "user" : "NOTiFY",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        },
        "readWriteAnyDatabase"
    ]
}

然后我在 Robo 3T 中创建连接: Robo 3T - create connection

然后我设置“身份验证”:

Authentication

当我尝试连接时,我得到:

Connection dialog

有什么建议吗?

最佳答案

直到我不得不重新启动我的 Mac 时,我才意识到我仍然有一个 MongoDB 本地实例在运行,因此我没有连接到我的 MongoDB 的 Docker 实例,而是连接到我的本地实例(安装了 Brew)实例。

一旦我看到@Artjom Zabelin 的回答 here和“不要忘记将端口映射到主机端口”

docker run --name some-mongo -p 27017:27017 -d mongo

它连接到运行我的容器的 MongoDB。

@Frank Yu Cheng Gu 是正确的,我需要“localhost”。

关于mongodb - 将 Robo 3T 连接到 Docker MongoDB 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55537630/

相关文章:

node.js - MongoDB聚合期间的"Server x timed out"

mongodb - 无法识别的管道阶段名称 : '$sample'

javascript - 在 Robo3T 中,如何添加自定义功能

node.js - Mongoose 模式字段在 MongoDB 中是反向排序的

mongodb - 更改 mongod dbpath 引发权限错误

mongodb - 查询以检索 mongodb 数组中的多个对象

mongodb - 使用 docker-compose 启用 Mongo 身份验证

database - 将 Tomcat 参数传递给 Docker

docker - sh : curl: not found even install curl inside k8s pod

java - 如何使用java中的两个条件删除mongodb中的文档