docker 搭建mongodb集群(单机)
1、创建网络
#docker network create mongo-network
2、创建容器
至少需要3个节点,可以是1主1丛1仲裁节点,也可以是1主2从(但不能是1主2仲裁,仲裁节点不备份数据,无法升为主节点)。一主一从的Replica Set也可以部署,但是效果等同于Master/Slave集群,主节点挂掉后,从节点无法自动提升为主节点
#仲裁节点(可要可不要,不创建的话在primary 做配置)
#docker run --rm -itd --name mongo-client --net=mongo-network mongo --replSet mongo-rep
#主
docker run --rm -itd --name mongo-primary --net=mongo-network mongo --replSet mongo-rep
#从1
docker run --rm -itd --name mongo-secondary1 --net=mongo-network mongo --replSet mongo-rep
#从2
docker run --rm -itd --name mongo-secondary2 --net=mongo-network mongo --replSet mongo-rep
3、查看个点的ip
#docker network inspect mongo-network

4、配置仲裁点
#docker exec -it mongo-client mongo
注意IP地址和端口,添加错节点可:rs.remove("172.19.0.4:27017"); 移除后添加 rs.add("172.19.0.3:27017");
> config = {_id:"mongo-rep", version:1, members:[{_id:0, host:"172.19.0.2:27017", priority:6}, {_id:1, host:"172.19.0.3:27017", priority:3}, {_id:2, host:"172.19.0.5:27017", priority:2}]}
激活配置
>rs.initiate(config)

5、验证
登录主节点
#docker exec -it mongo-primary mongo
登录从节点
#docker exec -it mongo-secondary2 mongo
#docker exec -it mongo-secondary2 mongo

关闭主节点
#docker stop mongo-primary

参考:https://blog.csdn.net/tealala/article/details/108756679
不过集群不能在一台机子上搭建,测试用的可以。但生产环境中要分开。

浙公网安备 33010602011771号