可以使用 CLI 向 docker mongo 实例进行身份验证,但不能通过任何其他方式进行身份验证

Can authenticate to docker mongo instance with CLI, but not by any other means

我有一张我开始使用的 bitnami mongo 图片:

docker run -p 27017:27017 -it --name mongodb <myregistry>.azurecr.io/movo.mongodb

我使用脚本为 mongo 数据库播种,可以在图像左侧看到输出。

问题: 我可以使用 mongo-cli 连接数据库。 但是,我无法使用相同的连接字符串使用 Robo3T 或我的 C# 解决方案进行身份验证..

这个有效:

docker exec -it mongodb  mongo admin -u movoproto -p "...<MyPwd>..."

但我无法以任何其他方式进行身份验证。 连接似乎不是问题...

我的笔记本电脑上有一个相同的设置,运行良好...

经过一些摆弄,我终于弄清楚了问题所在。

看来 mongodb on windows 可以作为本地服务启动,它在 127.0.0.1:27017 上运行数据库。

所以我使用 Robo3T 连接到这个本地实例而不是我映射的 docker mongo 实例。 使用 Robo3T,当我取消勾选 'Perform Authentication'.

时,我可以连接到这个本地实例

在Robo3T中你可以选择->右击'Open shell'->db.hostInfo()->F5->以文本模式查看结果。 这将提供有关我的台式计算机的信息

docker exec -it mongodb mongo --eval 'db.hostInfo()' 会显示关于我的 docker 图片的信息。

我的解决方案是在运行本地数据库的台式机上禁用 mongo 服务。

这样做会让 docker run -p 27017:27017 -it --name mongodb <myregistry>.azurecr.io/movo.mongodb 绑定到我的 docker 容器 127.0.0.1:27017