docker部署Mongo复制集

1.创建三个节点的数据目录和配置目录并赋权

mkdir –p /data/mongo-node(1,2,3)/data

mkdir –p /data/mongo-node1(1,2,3)/conf.d

chmod -R 777 /data

2.将mongodb的tar包分别上传至三个节点的服务器并加载或docker pull拉取镜像

docker load -i mongoxxx.tar

3.创建三个节点的配置文件

vi /data/mongo-node(1,2,3)/conf.d/mongo.conf

复制以下内容至配置文件

#systemLog:
#   destination: file
#   path: "/var/log/mongo/mongod.log"
#   logAppend: true
storage:
   journal:
      enabled: true # for x64 os
   dbPath: "/data/mongo"
#processManagement:
#   fork: true
net:
#  bindIp: 0.0.0.0
   bindIpAll: true
   port: 27017
setParameter:
   enableLocalhostAuthBypass: false

4.创建三个节点的启动脚本

docker run \

        -d \

        -p 27017:27017 \

        -v $(pwd)/mongod.conf:/etc/mongod.conf:ro \

        -v $(pwd)/data:/data/mongo:rw \

        --restart always \

        --name mongodb \

        mongodb:latest --config /etc/mongod.conf --replSet "RS"

5.启动三个节点的容器

进入run脚本目录执行

sh run.sh

6.检查各节点时候启动成功并查看个节点IP地址或容器地址(不在同意服务器用服务器IP地址,在同一服务器用容器IP)

在节点1执行

docker exec -it mongo-node1 bash

进入容器后执行

mongo -p 27017

进入mongo后执行

//配置文件

 var config = {_id:"RS",members:[{_id:0,host:"192.168.3.24:27017"},{_id:1,host:"192.168.3.20:27017"},{_id:2,host:"192.168.3.19:27017"}]}

 //初始化配置文件

rs.initiate(config)

这个时候再看mongo客户端的命令行就变成了 RS:PRIMARY或RS:SECONDARY,再往PRIMARY节点插入数据时,SECONDARY节点也能看到数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值