Pull image mongodb

docker pull mongo:latest
docker pull mongo:6.0
docker pull mongo:5.0
docker pull mongo:4.4.17
JavaScript

Tạo network cho mongodb

docker network create mongoNet
JavaScript

Run mongodb với 1 cái r0 làm primary và 2 cái còn lại làm secondary

docker run -d -p 27018:27017 --net mongoNet --name r1 mongo --replSet mongoRep
docker run -d -p 27019:27017 --net mongoNet --name r2 mongo --replSet mongoRep
docker run -d -p 27020:27017 --net mongoNet --name r3 mongo --replSet mongoRep
JavaScript

Tạo file docker-compose.yml với nội dung sau

version: '3.8'
services:
  mongo1:
    image: mongo:6
    command: --replSet my-mongo-set
    volumes:
      - mongo1_data:/data/db
    networks:
      - my-mongo-cluster
    ports:
      - 27017:27017
  mongo2:
    image: mongo:6
    command: --replSet my-mongo-set
    volumes:
      - mongo2_data:/data/db
    networks:
      - my-mongo-cluster
    ports:
      - 27018:27017
  mongo3:
    image: mongo:6
    command: --replSet my-mongo-set
    volumes:
      - mongo3_data:/data/db
    networks:
      - my-mongo-cluster
    ports:
      - 27019:27017

networks:
  my-mongo-cluster:
    driver: bridge

volumes:
  mongo1_data:
  mongo2_data:
  mongo3_data:
YAML

Kết nối vào mongo shell của container mongo 1

docker exec -it <container_id_mongo_1> mongosh
Bash

Lưu ý: với mongodb 5 hoặc 4 thì bạn cần đổi mongosh thành mongo

Cấu hình Replica set

config = {
  "_id":"my-mongo-set",
  "members":[
    {"_id" : 0, "host" : "192.168.1.253:27017"},
    {"_id" : 1, "host" : "192.168.1.253:27018"},
    {"_id" : 2, "host" : "192.168.1.253:27019"}
  ]
}
rs.initiate(config)
Bash

Trong đó 192.168.1.253 là địa chỉ IPv4 có thể kiểm tra bằng lệnh ipconfig.

Kiểm tra lại trạng thaí Replication

rs.status()
Bash

Leave a Reply

Your email address will not be published. Required fields are marked *