首页 > 其他分享 >搭建mongo副本集

搭建mongo副本集

时间:2023-08-16 17:37:59浏览次数:53  
标签:副本 mongo mongodb 999 key docker data 搭建

1. 下载镜像

docker pull mongo:6.0.8

2. 在 /data/mongodb 目录下新建 mongodb-1、mongodb-2、mongodb-3 三个文件夹

3. 生成keyfile文件

# 400权限是要保证安全性,否则mongod启动会报错
openssl rand -base64 756 > mongodb.key
chown 999:999 mongodb.key

将生成的mongodb.key文件分别复制到mongodb-1、mongodb-2、mongodb-3 三个文件夹

4. 在/data/mongodb目录下新建docker-compose.yml文件,内容如下:

version: '3.3'

services:
  mongodb1:
    image: mongo:6.0.8
    volumes:
      - /data/mongodb/mongodb-1:/data/db
      - /data/mongodb/mongodb-1/mongodb.key:/data/mongodb.key
    user: root
    environment:
     - MONGO_INITDB_ROOT_USERNAME=root
     - MONGO_INITDB_ROOT_PASSWORD=admin
    container_name: mongodb1
    ports:
      - 37017:27017
    command: mongod --replSet mongos --keyFile /data/mongodb.key
    restart: always
    entrypoint:
      - bash
      - -c
      - |
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        exec docker-entrypoint.sh $$@


  mongodb2:
    image: mongo:6.0.8
    volumes:
      - /data/mongodb/mongodb-2:/data/db
      - /data/mongodb/mongodb-2/mongodb.key:/data/mongodb.key
    user: root
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=admin
    container_name: mongodb2
    ports:
      - 37018:27017
    command: mongod --replSet mongos --keyFile /data/mongodb.key
    restart: always
    entrypoint:
      - bash
      - -c
      - |
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        exec docker-entrypoint.sh $$@


  mongodb3:
    image: mongo:6.0.8
    volumes:
      - /data/mongodb/mongodb-3:/data/db
      - /data/mongodb/mongodb-3/mongodb.key:/data/mongodb.key
    user: root
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=admin
    container_name: mongodb3
    ports:
      - 37019:27017
    command: mongod --replSet mongos --keyFile /data/mongodb.key
    restart: always
    entrypoint:
      - bash
      - -c
      - |
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        exec docker-entrypoint.sh $$@

5. 启动容器

# 后台启动并运行所有容器
docker-compose up -d 

image.png

6. 查看容器启动情况

docker ps | grep mongo
或者
# 查看运行的容器
docker ps 

image.png

7. 进入容器

docker exec -it mongodb1 /bin/bash

执行mongod --version image.png 说明启动成功

#连接mongo
mongosh -u root -p admin

注意:MongoDB 6.0全面弃用了mongo而使用mongosh

8. 执行初始化

# 需将IP替换成自己的主机IP
rs.initiate({ _id: "mongos", members: [  
   { _id : 0, host : "IP:37017" },  
   { _id : 1, host : "IP:37018" },  
   { _id : 2, host : "IP:37019" },
	]})

9. 查看状态

rs.status()

image.png

标签:副本,mongo,mongodb,999,key,docker,data,搭建
From: https://blog.51cto.com/u_16164025/7111279

相关文章

  • 0基础微信小程序搭建教程之禾匠商城源码搭建教程
    2022年版禾匠商城V4搭建教程(重新更新一份禾匠商城V4独立版搭建教程,因为之前的版本搭建跟现在有点不一样,现在一键安装比之前简单多了,废话不多现在开始!)准备工作:1、服务器一个,要好2核4G,安装系统CentOS7.5和宝塔面板。2、Nginx1.20,插件:PHP72、数据库5.6、Redis6.2.6,其它......
  • 搭建内网穿透
    搭建内网穿透通过在具有公网IP的节点上部署frp服务端,可以轻松地将内网服务穿透到公网.GitHub地址:https://github.com/fatedier/frp.下载和解压:wgethttps://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gztar-zxvffrp_0.47.0_......
  • mongodb 查重与去重
    --查询image重复记录db.getCollection('image').aggregate([{$group:{_id:{imageId:'$imageId',time:'$time'},count:{$sum:1}}},{$match:{count:{$gt:1}}}])--删除image重复记录db.getCollection('image......
  • centos7搭建radius认证服务器
     centos7搭建radius认证服务器一、实验设备清单1.VMware15.52.centos7(radius服务器)3.管理型交换机(radius客户端)二、安装centos7虚拟机1.安装虚拟机,并配置联网说明:centos7虚拟机网卡配置采用桥接模式。编辑网卡信息,并配置静态IP地址。vi/etc/sysconfig/network-sc......
  • 客服系统搭建教程,这些技巧你必须掌握!
    随着企业对客户服务需求的不断增加,客服系统的搭建成为了一项重要的任务。一个高效、稳定的客服系统能够提升客户满意度,增强企业竞争力。那么,在搭建客服系统时,有哪些技能是我们必须掌握的呢?了解客户需求在搭建客服系统之前,我们需要深入了解客户的需求,包括客户群体、服务内容、......
  • 【开源分享】在线客服系统搭建-基于php和swoole客服系统CRMchat(附源码完整搭建教程)
    CRMChat是一款开源的在线客服系统,后台管理使用thinkphp框架,消息通讯使用swoole扩展,现在我来部署搭建一下。这是一款不可商用的开源客服系统,如果有商用需求可以访问我的网站:gofly.v1kf.com域名解析以阿里云为例,我添加了自己的二级域名crmchat.v1kf.com到服务器IPPHP扩展安装......
  • 3-软硬件环境搭建
    目录一.硬件环境二.软件环境一.硬件环境1.单片机最小系统(单片机,复位电路,晶振电路)二.软件环境1.STM32工程文件结构2.固件库安装......
  • 本地搭建spring-boot集成dubbo问题汇总
    1,java.lang.NoClassDefFoundError:com/alibaba/spring/util/PropertySourcesUtils<dependency> <groupId>com.alibaba.spring</groupId> <artifactId>spring-context-support</artifactId> <version>1.0.2</version>......
  • 使用 SpringData 操作 Mongodb
    本篇博客主要介绍SpringBoot如何通过SpringData操作Mongodb。在上篇博客部署的mongodb为了方便,在admin库中创建了一个root角色的账号,使用这个账号具有最高权限,可以访问和操作任何库。在实际项目中强烈建议为每个mongodb数据库创建一个低权限角色的用户,比如具有readw......
  • 如何搭建一个演讲训练门户网站?
    搭建一个演讲训练门户网站可以帮助人们提升演讲能力和表达能力,提供相关的教学资源和训练工具。本文将介绍搭建演讲训练门户网站的步骤和要点。首先,确定网站的目标和定位。演讲训练门户网站的目标是提供演讲训练相关的教学资源和工具,帮助用户提升演讲能力和表达能力。定位可以根据......