mongo集群(开发环境已部署,生产环境待部署)

第一步 编写Mongos的Dockerfile:

FROM  mongo
EXPOSE 27017
ENTRYPOINT ["usr/bin/mongos"]

构建镜像:

sudo docker build -t askdog/mongos .

第二步 启动mongodb集群所需的Docker容器:

//创建副本集1 
docker run --name rs1_srv1 -p 21117:27017 -d mongo --smallfiles --replSet rs1
docker run --name rs1_srv2 -p 21217:27017 -d mongo --smallfiles --replSet rs1
docker run --name rs1_srv3 -p 21317:27017 -d mongo --smallfiles --replSet rs1
 -p 映射宿主机器和容器内部的端口。-d 表示deamon模式运行。--replSet 定义一个副本集名称
 --smallfiles 减小初始化数据文件的大小,并限制数据文件最大为512M (reduces the initial size for data files and limits the maximum size to 512 megabytes).

//创建副本集2
docker run --name rs2_srv1 -p 22117:27017 -d mongo --smallfiles --replSet rs2
docker run --name rs2_srv2 -p 22217:27017 -d mongo --smallfiles --replSet rs2
docker run --name rs2_srv3 -p 22317:27017 -d mongo --smallfiles --replSet rs2

//创建配置容器
docker run --name cfg1 -p 20117:27017 -d mongo --smallfiles --configsvr  --dbpath /data/db --port 27017
docker run --name cfg2 -p 20217:27017 -d mongo --smallfiles --configsvr  --dbpath /data/db --port 27017
docker run --name cfg3 -p 20317:27017 -d mongo --smallfiles --configsvr  --dbpath /data/db --port 27017

//创建mongo router
docker run --name mongos_router -p 27017:27017 -v /home/docker/volume/mongo/data:/data/db -d askdog/mongos --configdb 192.168.1.123:20117,192.168.1.123:20217,192.168.1.123:20317 --port 27017

第三步配置副本集与分片

//配置副本集1
//连接到rs1_svr1
mongo 192.168.1.123:21117
//配置副本集
rs.initiate();
rs.add("192.168.1.123:21217");
rs.add("192.168.1.123:21317");
rs.status();
#Fix hostname of primary.
cfg = rs.conf();
cfg.members[0].host = "192.168.1.123:21117";
rs.reconfig(cfg,{ force:true});
rs.status();

//配置副本集2
//连接到rs2_svr1
mongo 192.168.1.123:22117
//配置副本集
rs.initiate();
rs.add("192.168.1.123:22217");
rs.add("192.168.1.123:22317");
rs.status();
#Fix hostname of primary.
cfg = rs.conf();
cfg.members[0].host = "192.168.1.123:22117";
rs.reconfig(cfg,{ force:true});
rs.status();

//配置分片
//连接到路由服务器
mongo 192.168.1.123:27017
sh.addShard("rs1/192.168.1.123:21117");
sh.addShard("rs2/192.168.1.123:22117");
sh.status();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值