美文网首页
Docker + MongoDB Replica Set

Docker + MongoDB Replica Set

作者: GongZH丶 | 来源:发表于2019-04-01 15:01 被阅读0次

环境
系统:mac os x
Docker :18.09.0
MongoDB安装:https://www.jianshu.com/p/cd146d07e153

Deploy a Replica Set 搭建一个复制集(副本集)

  1. 在mongodb_test目录下创建mongo1,mongo2,mongo3三个目录,用于存放配置文件和mongodb数据库的数据。分别在这三个目录下创建mongo1.conf,mongo2.conf,mongo3.conf三个配置文件,内容暂时为空。


    image.png
  2. 创建三个mongodb实例,分别为test-mongo1,test-mongo2,test-mongo3。

docker run -p 28001:27017 --name test-mongo1 -v /Users/gzh/Desktop/测试项目/mongodb_test/mongo1:/etc/mongo -v /Users/gzh/Desktop/测试项目/mongodb_test/mongo1:/data/db -d mongo:4.0 --config /etc/mongo/mongo1.conf

docker run -p 28002:27017 --name test-mongo2 -v /Users/gzh/Desktop/测试项目/mongodb_test/mongo2:/etc/mongo -v /Users/gzh/Desktop/测试项目/mongodb_test/mongo2:/data/db -d mongo:4.0 --config /etc/mongo/mongo2.conf

docker run -p 28003:27017 --name test-mongo3 -v /Users/gzh/Desktop/测试项目/mongodb_test/mongo3:/etc/mongo -v /Users/gzh/Desktop/测试项目/mongodb_test/mongo3:/data/db -d mongo:4.0 --config /etc/mongo/mongo3.conf


image.png
cd mongo1
vi mongo1.conf
  1. 编辑mongo1.conf,mongo2.conf,mongo3.conf配置文件
replSet = replSetOne   // "replSet"为复制集的名称
  1. 通过docker inspect 得到每个mongodb容器的IPAddress
    如下,是mongo2的IPAddress
image.png
  1. 进入mongo1(以mongo1为主节点)容器,连接mongodb服务,配置复制集信息
docker exec -it mongo1 bash //进入容器

mongo   //连接mongodb


rs.initiate( {
   _id : "replSetOne",
   members: [
      { _id: 0, host: "172.17.0.3:27017" },       //mongo1
      { _id: 1, host: "172.17.0.4:27017" },      //mongo2
      { _id: 2, host: "172.17.0.5:27017" }       //mongo3
   ]
})
image.png
  1. 查看复制集信息
rs.status()
image.png
  1. 判断是否是主节点
db.isMaster()
image.png
  1. 验证复制集
    主节点插入数据,(只有主节点可以写入数据)从节点会复制主节点的数据


    image.png
image.png
  1. 重新选举
    关掉mongo1服务,查看复制集状态
docker stop test-mongo1
rs.status()

可以看到mongo2变成了PRIMARY主节点,mongo2的权限提升到可以写入数据了


image.png image.png
  1. 故障恢复
    重新启动mongo1
docker start test-mongo1

可以看到复制集的所有成员节点数据是同步的。


image.png

相关文章

网友评论

      本文标题:Docker + MongoDB Replica Set

      本文链接:https://www.haomeiwen.com/subject/sfgmbqtx.html