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
不过集群不能在一台机子上搭建,测试用的可以。但生产环境中要分开。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
2020-06-24 /etc/hosts 详解