Может аутентифицироваться в экземпляре Docker Mongo с помощью CLI, но не любым другим способом. - PullRequest
0 голосов
/ 17 января 2019

У меня есть изображение 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 голосов
/ 02 февраля 2019

После некоторых раздумий я понял, в чем проблема в конце.

Похоже, что mongodb в Windows может запускаться как локальный сервис, который запускает базу данных на 127.0.0.1:27017.

.

Таким образом, используя Robo3T, я подключался к этому локальному экземпляру, а не к своему подключенному экземпляру Docker Mongo. С Robo3T я мог подключиться к этому локальному экземпляру, когда снял флажок «Выполнить аутентификацию».

В Robo3T вы можете выбрать -> Щелкните правой кнопкой мыши «Открыть оболочку» -> db.hostInfo() -> F5 -> Просмотр результатов в текстовом режиме. Это даст информацию о моем настольном компьютере

Принимая во внимание, что docker exec -it mongodb mongo --eval 'db.hostInfo()' будет отображать информацию о моем образе докера.

Мое решение состояло в том, чтобы отключить службу mongo на моем настольном компьютере, который запускает локальную базу данных.

Выполнение этого позволит docker run -p 27017:27017 -it --name mongodb <myregistry>.azurecr.io/movo.mongodb связываться с моим док-контейнером на 127.0.0.1:27017

...