docker搭建mongodb单节点副本集

背景

在开发中,我们很容易通过docker启动一个普通的mongodb数据库服务。但是有时候为了保持与线上环境一致,或者为了利用mongodb副本集的某些特性,我们需要在本地部署mongodb副本集。副本集往往需要启动多个mongodb服务作为副本集成员,而通常用于开发的笔记本资源比较有限。鉴于此,官方文档给了解决办法,可以直接将一个单节点mongodb服务转换为单节点副本集www.mongodb.com/docs/manual/tutori...,本片文章的背景就是在golang中开发,操作mongo开启事务后报错:

(IllegalOperation) Transaction numbers are only allowed on a replica set member or mongos

需要开启副本集才能使用事务,并且mongo版本大于4.0以上哈

操作

  1. pull mongo镜像
    这边使用mongo5.0.7
docker pull mongo:5.0.7
  1. 创建并启动一个mongo副本集容器
docker run -d --name mongo_test -p 27017:27017 mongo:5.0.7 --replSet rs0

其中--replSet rs0就是指明开启副本集

  1. 进入容器初始化副本集
docker exec -it mongo_test bash
  1. 进入终端输入
    mongosh
  2. 在mongosh终端内输入
    rs.initiate()
    ,它便会自动根据默认配置生成一个副本集
  3. 检查副本集状态,使用
    rs.status()
  4. 大功告成!

注:一定要在终端内输入mongosh进入mongosh后 再执行rs.initiate()和rs.status()

本作品采用《CC 协议》,转载必须注明作者和本文链接
codezhao
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!