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

时间:2019-01-17 15:39:27

标签: mongodb docker authentication bitnami

我有一个开始使用的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>..."

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

我在笔记本电脑上有一个完全相同的设置,可以正常工作...

Problem illustration

1 个答案:

答案 0 :(得分:0)

经过一番摆弄之后,我弄清楚了问题到底出在哪里。

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

因此,使用Robo3T我连接到该本地实例,而不是我的映射泊坞窗蒙戈实例。 使用Robo3T,当我取消“执行身份验证”时,我可以连接到此本地实例。

在Robo3T中,您可以选择->右键单击“打开外壳”-> db.hostInfo()-> F5->以文本模式查看结果。 这将提供有关我的台式计算机的信息

docker exec -it mongodb mongo --eval 'db.hostInfo()'将显示有关我的docker映像的信息。

我的解决办法是禁用运行本地数据库。

在我的台式机蒙戈服务

执行此操作将使docker run -p 27017:27017 -it --name mongodb <myregistry>.azurecr.io/movo.mongodb绑定到127.0.0.1:27017处的docker容器