Deploying MongoDb ReplicaSet Cluster using Docker. Docker must be installed.
docker-compose up
docker-compose exec init-mongo-primary mongo -u "root" -p "password"
rs.initiate({"_id" : "init-replica-set","members" : [{"_id" : 0,"host" : "init-mongo-primary:27017"},{"_id" : 1,"host" : "init-mongo-worker-1:27017"},{"_id" : 2,"host" : "init-mongo-worker-2:27017"},{"_id" : 3,"host" : "init-mongo-worker-3:27017"}]});
conf = rs.config();
conf.members[0].priority = 2;
rs.reconfig(conf);
use admin;
db.createUser({user: "cluster_admin",pwd: "password",roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { "role" : "clusterAdmin", "db" : "admin" } ]});
db.auth("cluster_admin", "password");
use user_test_db;
db.createUser({user: "my_user",pwd: "password",roles: [ { role: "readWrite", db: "user_test_db" } ]});
db.createCollection('my_collection');
Make sure to exit from the primary node before proceeding. Use exit
to exit.
docker-compose exec init-mongo-primary mongo -u "my_user" -p "password" --authenticationDatabase "user_test_db"
docker-compose down