docker run -d --name mongo -p 27017:27017 -v ~/mongo-data:/data/db mongo --auth
docker ps
docker exec -it mongo mongo admin
Create an admin user for the MongoDB server (not for the database)
db.createUser({user:'admin', pwd: 'admin1234', roles:[{role:'userAdminAnyDatabase', db: 'admin'}]});
exit
docker exec -it mongo mongo -u admin -p 'admin1234' --authenticationDatabase admin
Create a users database (this could be any database that you want to secure).
use users
db.createUser({ user: 'usersadmin', pwd: 'usersadmin1234', roles: ["readWrite", "dbAdmin"] });
Now you can use the following URL for connecting to MongoDB:
mongodb://usersadmin:usersadmin1234@localhost:27017/users
This will authenticate you into MongoDB
docker exec -it mongo mongo -u admin -p 'admin1234' --authenticationDatabase admin
use users
db.auth('usersadmin', 'usersadmin1234')
db.userlist.find({})
db.userlist.insert({"username" : "jdoe", "email" : "jdoe@email.com", "firstname" : "Jack", "lastname" : "Doe", "org" : "Org1", "password" : "$2a$10$ByqT8PI7Bq2m4Z8yXU1pF.9IcjrozOzpsa4HHBaxMXE.3Dj1HEnI6", "adminUser" : true, "authorizedApps" : [ "User Manager" ] })
docker run -d --name mongo -p 27017:27017 -v ~/mongo-data:/data/db mongo