1、安装docker环境
2、下载mongo镜像
3、通过mongo镜像运行三个mongo容器
docker run -itd -p 30001:27017 --name mongo1 mongo:3.4 mongod --replSet my-mongo-set // 172.17.0.2docker run -itd -p 30002:27017 --name mongo2 mongo:3.4 mongod --replSet my-mongo-set // 172.17.0.3
docker run -itd -p 30003:27017 --name mongo3 mongo:3.4 mongod --replSet my-mongo-set // 172.17.0.4
注:docker exec -it mongo1 mongo 进去mongo控制台
4、配置replica 信息
config = {
"_id" : "my-mongo-set",
"members" : [
{
"_id" : 0,
"host" : "172.17.0.2:27017"
},
{
"_id" : 1,
"host" : "172.17.0.3:27017"
},
{
"_id" : 2,
"host" : "172.17.0.4:27017"
}
]
}
或者:
- cfg={ _id:"rs1", members:[ {_id:0,host:'192.168.159.135:27017',priority:2},
- {_id:1,host:'192.168.159.136:27017',priority:1}, {_id:2,host:'192.168.159.137:27017',arbiterOnly:true}] };
- rs.initiate(cfg)
rs.initiate(config)
db.isMaster()
5、4已经完成后,集群已经创建成功,但是从primary插入数据,secondary查询会失败,原因是没有在secondary执行db.setSlaveOk()