Назад | Перейти на главную страницу

Ошибка аутентификации при подключении к Dockerized экземпляру MongoDB

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

Мои точные шаги по созданию, запуску и подключению к контейнеру:

  1. Создайте и запустите контейнер

    docker run --name prod-mongo -p 27017:27017 -d mongo --auth

  2. Добавлен первоначальный пользователь:

    docker exec -it prod-mongo mongo admin

    db.createUser({user:'skipper', pwd:'skipperspassword', roles:[{role:'userAdminAnyDatabase',db:'admin'}] });

  3. Успешно подключился к контейнеру Docker из другого контейнера Mongo:

    docker run -it --rm --link prod-mongo:mongo mongo mongo -u skipper -p --authenticationDatabase admin prod-mongo/skippers-apps

  4. Безуспешно подключен к контейнеру Docker с хоста Docker: mongo skippers-apps --authenticationDatabase admin -u skipper -p

Это последний шаг, который меня беспокоит. Он работает в моей локальной среде разработки, но не в производственной среде.

Среда разработки

Производственная среда

Хотя я не уверен, почему версия MongoDB, которую я использовал ранее (2.6.10), плохо сочеталась с Docker, я смог решить проблему, обновив версию клиента MongoDB.

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

Решение: обновлен клиент MongoDB с 2.6.10 до 3.2.11