docker快速安装单节点和多点MongoDB副本集

本文介绍了如何使用Docker快速搭建MongoDB单节点副本集,并展示了多节点副本集的配置过程,包括必要的环境准备、配置调整和连接方式。同时提到了MongoDB4.4的新特性——事务支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概要

最近项目的MongoDB版本终于升级到了MongoDB4.4了,可以使用使用事务了,但MongoDB的不支持单节点事务,至少是副本集。
测试环境没必要搭建复杂的副本集,还好官方给出了单节点副本集的方案,本文总结了如何用docker来快速搭建。

一、单节点副本集

1:拉取镜像

docker pull mongo:7.0

2:准备环境

mkdir -p /home/docker/mongo/data  #数据挂载目录
mkdir -p /home/docker/mongo/logs  #日志挂载目录
mkdir -p /home/docker/mongo/config #配置挂载目录
chmod 777  /home/docker/mongo/*      #授权
docker run -d --name mongo_tmp -p 27017:27017 mongo:7.0
docker cp mongo_tmp:/etc/mongod.conf.orig /home/docker/mongo/config/mongod.conf  #复制配置文件
docker rm mongo_tmp

3:调整配置
vim /home/docker/mongo/config/mongod.conf

# mongod.conf
# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
#  engine:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo
#security:
#operationProfiling:
replication:  #开启副本集
  replSetName: rs  #设置副本集名称
#sharding:
## Enterprise-Only Options:
#auditLog:

4:启动容器

docker run -d -p 27017:27017 --name mongo \
-v /home/docker/mongo/data:/var/lib/mongodb \
-v /home/docker/mongo/logs:/var/log/mongodb \
-v /home/docker/mongo/config/mongod.conf:/etc/mongod.conf \
 mongo:7.0 -f /etc/mongod.conf

5:初始化副本集并检测

[root@test home]# docker exec mongo mongosh --version
2.2.0
[root@test home]# docker exec -it mongo bash
root@4250323d6d90:/# mongosh
Current Mongosh Log ID: 6606093080fcdce72edb83af
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.0
Using MongoDB:          7.0.7
Using Mongosh:          2.2.0
test> rs.initiate()  #初始化副本集
{
   
  info2: 'no configuration specified. Using a default configuration for the set',
  me: '4250323d6d90:27017',
  ok: 1
}
rs [direct: primary] test> rs.status() #检测
{
   
  set: 'rs',
  date: ISODate('2024-03-28T21:53:44.472Z'),
  myState: 1,
  term: Long('1'),
  syncSourceHost: '',
  syncSourceId: -1,
  heartbeatIntervalMillis: Long('2000'),
  majorityVoteCount: 1,
  writeMajorityCount: 1,
  votingMembersCount: 1,
  writableVotingMembersCount: 1,
  optimes: {
   
    lastCommittedOpTime: {
    ts: Timestamp({
    t: 1711662813, i: 23 }), t: Long('1') },
    lastCommittedWallTime: ISODate('2024-03-28T21:53:33.694Z'),
    readConcernMajorityOpTime: {
    ts: Timestamp({
    t: 1711662813, i: 23 }), t: Long('1'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值