Cài đặt trên Docker
Sử dụng docker run
Pull image mongodb
docker pull mongo:latest
docker pull mongo:6.0
docker pull mongo:5.0
docker pull mongo:4.4.17
JavaScriptTạo network cho mongodb
docker network create mongoNet
JavaScriptRun 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
JavaScriptSử dụng Docker compose
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:
YAMLKết nối vào mongo shell của container mongo 1
docker exec -it <container_id_mongo_1> mongosh
BashLư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)
BashTrong đó 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