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

不过集群不能在一台机子上搭建,测试用的可以。但生产环境中要分开。

 
posted @   leihongnu  阅读(472)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2020-06-24 /etc/hosts 详解
点击右上角即可分享
微信分享提示