шаги: -
1) Запуск экземпляра Docker без аутентификации
$ docker run --name container-name -d -p 27017:27017 -v ~/mongodb:/data/db mongo
2) Создайте главного пользователя администратора с ролями администратора
$ mongo --port 27017
$ use admin;
$ db.createUser({user: "adminUserName",pwd: "adminPassword",roles: [{ role: "userAdminAnyDatabase", db: "admin" }})
Это создаст пользователя в базе данных администратора с ролями «userAdminAnyDatabase». Это похоже на суперпользователя.
3) Создать пользователя для конкретной базы данных
$ use
$ db.createUser({user: "dev-read-username",pwd: "dev-read-password",roles:["read"]})
-- User with "read" role
$ db.createUser({user: "dev-write-username",pwd: "dev-write-password",roles:["readWrite"]})
-- User with "readWrite" role
Для списка ролей, доступных или как создать пользовательские роли, пожалуйста, проверьте https://docs.mongodb.com/manual/reference/built-in-roles/
4) Снимите контейнер Docker
$ docker ps -a
$ docker stop container_id
$ docker rm container_id
5) Запустите экземпляр докера с проверкой подлинности
$ docker run --name container-name -d -p 27017:27017 -v ~/mongodb:/data/db mongo --auth
Предполагаете, что вы, возможно, не запустили контейнер докера, с включенным параметром --auth. Когда вы начнете с --auth enabled, то вы не сможете подключиться без учетных данных.
Можете ли вы сделать это как принятый ответ на свой вопрос, или еще не полностью удовлетворены? – Wrench