使用 docker 创建 mongodb 副本集, 和调整副本集优先级

=== mongod 本地创建副本集
mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost,
–dbpath 指向数据存放地址
–replSet 后面为 副本集的名。
rs.initiate() 启动新的副本集
rs.conf() 查看副本集的配置
rs.status() 查看副本集的状态
rs.add() 将成员添加到副本集
rs.add( { host: “mongodb3.example.net:27017” } )

删除副本集成员

1、先停止要删除成员的实例
使用 mongosh , 并执行 db.shutdownServer(), 关闭实例
2、进入当前副本集的 primary。 即 主节点。
3、
rs.remove("mongod3.example.net:27017")

也可以通过 rs.reconfig()的方式来删除一个成员。即重新配置。
通过 rs.conf() 找到要删除成员的 index 位置。
使用 docker 创建 mongodb 副本集, 和调整副本集优先级_第1张图片

docker 创建 mongo 副本集

docker run --network mongo-net  --name mongo -d -v E:\dockerMongoDb\data\db -p 27021:27017 mongo:latest --replSet mongo-set
docker run --network mongo-net  --name mongo-slaver -d -v E:\dockerMongoDb\data\db -p 27022:27017 mongo:latest --replSet mongo-set
docker run --network mongo-net  --name mongo-arbiter -d -v E:\dockerMongoDb\data\db -p 27023:27017 mongo:latest --replSet mongo-set

参数说明

–network 将容器加入创建的网桥
-v 将容器内部的文件挂载在宿主机指定的目录
–replSet 命名副本集名

进入主 mongodb 容器并打开mongosh

 docker exec -it mongo bash
 // 打开 mongosh
 mongosh

初始化副本集

rs.initiate()

添加副节点 ,priority 值越大,越有可能当选主节点

rs.add('mongo-slaver:27017')
rs.add({host:'mongo-arbiter:27017',priority:0})

查看副本集状态

rs.status()

=== docker 常见命令

docker ps

docker ps -a

docker rm

docker run

docker stop


调整副本集优先级

获取副本集配置
重新配置副本集
使用 docker 创建 mongodb 副本集, 和调整副本集优先级_第2张图片
使用 docker 创建 mongodb 副本集, 和调整副本集优先级_第3张图片

你可能感兴趣的:(docker,mongodb,docker,数据库)