MongoDB Replica Set
This service sets up a MongoDB replica set with three members.
Prerequisites
-
Generate a key file for the replica set:
openssl rand -base64 756 > ./secrets/rs0.key
Initialization
-
Start the services:
docker compose up -d -
Connect to the primary node:
docker exec -it mongodb-replicaset-mongo1-1 mongosh -
Initialize the replica set. Remember to replace the host IP with your actual host IP.
config = { _id: "rs0", members: [ {_id: 0, host: "192.168.31.38:27017"}, {_id: 1, host: "192.168.31.38:27018"}, {_id: 2, host: "192.168.31.38:27019"}, ] } rs.initiate(config)
Services
mongo1: The first member of the replica set.mongo2: The second member of the replica set.mongo3: The third member of the replica set.
Configuration
MONGO_VERSION: The version of the MongoDB image, default is8.0.13.MONGO_INITDB_ROOT_USERNAME: The root username for the database, default isroot.MONGO_INITDB_ROOT_PASSWORD: The root password for the database, default ispassword.MONGO_INITDB_DATABASE: The initial database to create, default isadmin.MONGO_REPLICA_SET_NAME: The name of the replica set, default isrs0.MONGO_PORT_OVERRIDE_1: The host port for the first member, default is27017.MONGO_PORT_OVERRIDE_2: The host port for the second member, default is27018.MONGO_PORT_OVERRIDE_3: The host port for the third member, default is27019.
Volumes
secrets/rs0.key: The key file for authenticating members of the replica set.