当前位置: 首页 > article >正文

docker学习记录:创建mongodb副本集

目的,是创建三个,避免出现错误时,仍然能正常工作。

要在 Docker 中创建一个 MongoDB 集群(副本集),并确保数据存储在本地,同时允许局域网访问,你可以按照以下步骤进行操作。我们将创建三个 MongoDB 实例,并将它们配置为副本集。

步骤 1:创建本地数据目录首先,确保你的本地有三个目录用于存储 MongoDB 的数据。你可以使用以下命令创建这些目录:

mkdir -p ~/mongodb-data/mongo1
mkdir -p ~/mongodb-data/mongo2
mkdir -p ~/mongodb-data/mongo3
kt@kt-SYS-4028GR-TR2:~$ pwd
/home/kt
kt@kt-SYS-4028GR-TR2:~$ mkdir -p ~/mongodb-data/mongo1
mkdir -p ~/mongodb-data/mongo2
mkdir -p ~/mongodb-data/mongo3
kt@kt-SYS-4028GR-TR2:~$ ls
 anaconda3                              Documents   kibana-config   Music      snap        下载
'Clash for Windows-0.20.16-x64-linux'   Downloads   kibana.yml      Pictures   Templates
 Desktop                                gitee       mongodb-data    Public     Videos
kt@kt-SYS-4028GR-TR2:~$ cd mongodb-data
kt@kt-SYS-4028GR-TR2:~/mongodb-data$ ls
collection-0-6568957423112683287.wt  index-5-6568957423112683287.wt  mongo3           WiredTiger.lock
collection-2-6568957423112683287.wt  index-6-6568957423112683287.wt  mongod.lock      WiredTiger.turtle
collection-4-6568957423112683287.wt  journal                         sizeStorer.wt    WiredTiger.wt
diagnostic.data                      _mdb_catalog.wt                 storage.bson
index-1-6568957423112683287.wt       mongo1                          WiredTiger
index-3-6568957423112683287.wt       mongo2                          WiredTigerHS.wt
kt@kt-SYS-4028GR-TR2:~/mongodb-data$ 

步骤 2:启动 MongoDB 容器使用   docker run   命令启动三个 MongoDB 容器,并将数据卷挂载到本地目录。以下是启动命令:

# 启动第一个 MongoDB 实例
sudo docker run -d --name mongo1 -p 27017:27017 -v ~/mongodb-data/mongo1:/data/db mongo --replSet "rs"

# 启动第二个 MongoDB 实例
sudo docker run -d --name mongo2 -p 27018:27017 -v ~/mongodb-data/mongo2:/data/db mongo --replSet "rs"

# 启动第三个 MongoDB 实例
sudo docker run -d --name mongo3 -p 27019:27017 -v ~/mongodb-data/mongo3:/data/db mongo --replSet "rs"

•   -d  :以 detached 模式运行容器。•   --name  :为每个容器指定一个名称。•   -p  :将容器的 27017 端口映射到宿主机的不同端口(27017、27018、27019)。•   -v  :将本地目录挂载到容器的   /data/db   目录,这样数据会被持久化。•   --replSet "rs"  :指定容器为副本集的一部分。步骤

3:连接到 MongoDB 实例连接到任意一个 MongoDB 实例以进行副本集配置。你可以使用以下命令进入第一个 MongoDB 容器:

sudo docker exec -it mongo1 mongo

步骤 4:配置副本集在 MongoDB shell 中,使用以下命令配置副本集:

•   _id  :副本集的名称。•   members  :包含副本集成员的数组,每个成员都有一个唯一的   _id   和   host  (IP 地址和端口)。步骤 5:验证副本集状态执行以下命令查看副本集的状态:javascriptrs.status();
这将显示副本集的状态信息,包括主节点和从节点的信息。步骤 6:访问 MongoDB现在,你可以通过局域网访问 MongoDB。使用以下连接字符串连接到 MongoDB:mongodb://10.73.30.241:27017
你可以使用 MongoDB 客户端工具(如 MongoDB Compass 或 Robo 3T)连接到这个地址。关键解释• 副本集:MongoDB 的副本集是一组 MongoDB 服务器,提供高可用性和数据冗余。一个副本集包含一个主节点和多个从节点。• 数据持久化:通过将数据卷挂载到本地目录,确保即使容器被删除,数据仍然保留。• 端口映射:通过将容器的端口映射到宿主机的不同端口,确保可以从外部访问 MongoDB。通过这些步骤,你可以成功地在 Docker 中部署 MongoDB 集群,并确保数据持久化和局域网访问。如果还有其他问题,请随时询问!


http://www.kler.cn/a/473327.html

相关文章:

  • 网络安全-web渗透环境搭建-BWAPP(基础篇)
  • 详细全面讲解C++中重载、隐藏、覆盖的区别
  • 使用python将多个Excel表合并成一个表
  • C++ 11,14,17 新特性
  • LangChain速成课程_构建基于OpenAI_LLM的应用
  • 创建型模式5.单例模式
  • RAG应用在得物开放平台的智能答疑的探索
  • linux 服务器清理
  • Go语言的数据库编程
  • selenium在Linux环境下截屏(save_screenshot)中文乱码的问题
  • Go语言的 的垃圾回收(Garbage Collection)核心知识
  • 新版2024AndroidStudio项目目录结构拆分
  • vue3 + ts + element-plus(el-upload + vuedraggable实现上传OSS并排序)
  • Nginx入门笔记
  • 数据结构:LinkedList与链表—面试题(三)
  • DATACOM-广域网技术(ATM、PPP、PPPoE)-复习-实验
  • 【单片机】实现一个简单的ADC滤波器
  • 数据结构(1~10)
  • Flutter Web 中文字体显示异常问题
  • C++之闭散列哈希表
  • 使用 Python 的 pyttsx3 库进行文本转语音
  • 探索电商宝藏:用Java打造1688商品详情爬虫,挖掘商业价值
  • ChatGPT加速器:解锁高效智能对话的新工具
  • 怎么对PDF插入图片并设置可见程度-免费PDF编辑工具分享
  • fetch-pack: unexpected disconnect while reading sideband packet报错问题排查
  • 设置密码,保护隐私:Excel文件加密的几种方法