【保姆级教程】:docker搭建MongoDB三节点副本集

这篇具有很好参考价值的文章主要介绍了【保姆级教程】:docker搭建MongoDB三节点副本集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎关注公众号:天天说编程

你的关注是我最大的动力!文章来源地址https://www.toymoban.com/news/detail-774189.html

容器可以理解为一个进程,镜像是把环境,组件等都配置好,运行成容器的,容器里面运行服务,也可以说是一个进程。镜像是模板,镜像是实例。

一个镜像可以创建多个实例。也就是多个容器,容器之间相互独立。

背景

创建副本集,1主2从,主负责增删改,当然查也可以,从负责只读。

远程的linux系统,在远程的linux系统上使用docker搭建mongoDB的三节点副本集。

注意:mongoDB版本:mongo6.0之前的版本,执行的时候使用mongo这个命令启动客户端,mongo的6.0版本之后使用mongosh命令启动客户端。

1.拉取mongodb镜像,注意版本。

重要的事情说三遍!

重要的事情说三遍!

重要的事情说三遍!

注意:mongoDB版本:mongo6.0之前的版本,执行的时候使用mongo这个命令启动客户端,mongo的6.0版本之后使用mongosh命令启动客户端。

docker pull mongo:6.2

2.创建3个文件夹存储的是容器信息

mkdir -p /home/data/master

mkdir -p /home/data/slave1

mkdir -p /home/data/slave2

3.关于网络

如果有特殊要求就创建一个属于自己的网络。如果没有特殊要求就用默认的。

这儿我自己创建了一个。

// 查看网络信息
docker network ls 

// 创建一个驱动是网桥,网络名是ste_net的网络
docker network create --driver bridge mynet

4.创建容器

下面是通过启动三个容器,三个容器通过宿主机的端口10001 10002 10003 映射27017,也就是通过这三个端口都可以访问到27017的端口。当然这三个端口都是暴露在外面的。

--itd:既交互式访问,又让服务后端执行

--restart always:假如服务断了,可以尝试启动

-v:主机路径:docker路径;挂载卷,这个可以同步数据,同步宿主机和容器的数据。持久化数据。

--name :给新容器取名

--replSet :设置副本集名称,这里的名称是rs

sudo docker run -itd --restart always --name mongodb-master
-p 10001:27017 
-v /home/master/data:/data/db 
-v /home/master/conf:/data/conf 
-v /home/master/log:/data/log  mongo:6.2 --replSet "rs"

sudo docker run -itd --restart always --name mongodb-slave1
-p 10002:27017 
-v /home/slave1/data:/data/db 
-v /home/slave1/conf:/data/conf 
-v /home/slave1/log:/data/log  mongo:6.2 --replSet "rs"

sudo docker run -itd --restart always --name mongodb-slave2 
-p 10003:27017 
-v /home/slave2/data:/data/db 
-v /home/slave2/conf:/data/conf 
-v /home/slave2/log:/data/log  mongo:6.2 --replSet "rs"

最后使用docker ps 查看容器是否创建成功!

5.进入容器

想把哪个容器当做主节点,就进入哪个容器。

注意:我的mongo的版本是6以上的,如果你是6以下的,请使用mongo,6以上使用Mongosh。

docker exec -it mongodb-master  mongosh

如果出现下面一堆东西,说明通过客户端创建成功了!

docker-swarm搭建mongodb副本集,【MongoDB】,mongodb,数据库

 6.设置主从节点

上面我们已经完成了宿主机和容器之间的映射,下面设置主从节点。

进入容器后,通过rs.initiate()命令对主从节点进行初始化。

下面是进入容器后的状态 test> 

docker-swarm搭建mongodb副本集,【MongoDB】,mongodb,数据库

格式:

rs.initiate(
... {
...     _id:"集群名称", // 这儿也就是创建容器的时候后面的 副本集名称
...     version:1,
...     members:[
...        {_id:0,host:"宿主机IP:10001"},
...        {_id:1,host:"宿主机IP:10002"},
...        {_id:2,host:"宿主机IP:10003"}
...     ]
... }
)

 看到"ok":1为成功,0为失败,如果你为0,看看上面有无操作出错。

下面已经变成了主节点

docker-swarm搭建mongodb副本集,【MongoDB】,mongodb,数据库

最后,通过rs.status()查看状态:

小结:

  1. 注意mongoDB的版本,6.0之前用mongo客户端命令,6.0之后使用mongosh客户端命令
  2. 注意第2步设置初始化的时候,是你的宿主机ip:port,port是你的宿主机暴露的端口,因为之前创建虚机的时候会有一个映射,端口映射到容器的27017,所以外部通过这个10001 10002 10003以及ip,就可以访问到容器内部。

欢迎关注公众号:天天说编程

你的关注是我最大的动力!

到了这里,关于【保姆级教程】:docker搭建MongoDB三节点副本集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 搭建 MongoDB (v6.0) 副本集记录

    副本集(Replica Set)是一组带有故障转移的 MongoDB 实例组成的集群,由一个主(Primary)服务器和多个从(Secondary)服务器构成。通过Replication,将数据的更新由Primary推送到其他实例上,在一定的延迟之后,每个MongoDB实例维护相同的数据集副本。通过维护冗余的数据库副本,能

    2024年02月05日
    浏览(45)
  • Mongodb Replica Sets 副本集群搭建

    Replica Sets 复制集搭建 MongoDB 有三种集群架构模式,分别为主从复制(Master-Slaver)、副本集(Replica Set)和分片(Sharding)模式。 Master-Slaver 是一种主从复制的模式,目前已经不推荐使用 ReplicaSet模式取代了Master-Slaver模式,是一种互为主从的关系。Replica Set 将数据复制多份保存

    2024年01月22日
    浏览(49)
  • 使用 docker 创建 mongodb 副本集, 和调整副本集优先级

    === mongod 本地创建副本集 mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost,hostname(s)|ip address(es) –dbpath 指向数据存放地址 –replSet 后面为 副本集的名。 rs.initiate() 启动新的副本集 rs.conf() 查看副本集的配置 rs.status() 查看副本集的状态 rs.add() 将成员添加到副本集

    2024年02月09日
    浏览(38)
  • 【MongoDB】集群搭建实战 | 副本集 Replica-Set | 分片集群 Shard-Cluster | 安全认证

    副本集 MongoDB副本集(Replica Set)是一组维护相同数据集的 MongoDB 实例,它可以提供数据的冗余和高可用性。 副本集由一个主节点(Primary)和多个从节点(Secondary)组成。 客户端所有写操作都会发送到主节点,主节点会记录oplog,然后将写操作同步到从节点。 从节点可以进行

    2024年02月05日
    浏览(42)
  • MongoDB安装(新版本保姆级教程)

    MongoDB 是一个文档数据库,旨在简化开发和扩展。 本篇文章介绍 MongoDB 数据库及其 可视化工具 MongoDB Compass 的详细教程 (window10操作系统) 首先进入官网(社区版) ,在对应页面选择需要安装的版本 (这里下载当前适合版本号) 传送门 因为选择下载的是 .zip 文件,直接跳过安装,

    2024年02月06日
    浏览(35)
  • OBD搭建OceanBase三副本集群(1-1-1)docker版

            本次使用OBD方式搭建一个OceanBase三副本集群,由于服务器资源有限,选择较为轻量级的docker,运行三个容器来实现OceanBase(1-1-1)+OBProxy集群架构的搭建,ODC开发工具客户端远程连接做简单查询。 IP 服务器 资源规格 软件及版本 宿主机:容器端口映射 宿主机:容器目录映射

    2024年01月23日
    浏览(43)
  • 私有云服务器搭建教程(保姆级)——台式电脑+ubuntu+docker+nextcloud+mysql+花生壳内网穿透

    随着移动互联网的发展,越来越多的人使用云网盘存储他们的文档、照片、视频等文件。不知从什么时候起,我们不知不觉开始为享受云存储的服务付费买单。一次上传,随处访问,越来越成为人们的日常需求。随之而来的是各云网盘每月的定期收费,以及强制将用户分为免

    2024年02月02日
    浏览(44)
  • portainer管理远程docker和docker-swarm集群

    使用前请先安装docker和docker-compose,同时完成docker-swarm集群初始化 部署portainer-ce实时管理本机docker,使用docker-compose一键拉起 docker-compose.yml 6053537/portainer-ce 此镜像为中文版本,效果如下 管理本地docker比较简单,直接使用 volumes 挂载目录即可 /var/run/docker.sock:/var/run/docker.sock

    2024年03月20日
    浏览(46)
  • Mac安装MongoDb保姆级教程以及踩坑笔记(图文详解)

    两种方式,亲测推荐 第二种,建议直接看第二种 ! 目录 一、官网下载安装包手动安装 二、命令行brew安装🌟(推荐!) 1.官网下载MongoDB Community Download | MongoDB 2.把压缩包解压到usr/local.(关于怎么找到usr/local?打开访达-按住command+shift+G-输入/usr/local 就可以找到 把解压后的文

    2024年02月02日
    浏览(39)
  • 【MongoDB】四、MongoDB副本集的部署

           能够通过部署副本集理解副本集机制,从而解决大数据项目中数据丢失的问题 环境准备:根据表中的信息完成3台MongoDB服务器的部署(XXX是姓名拼音首字母)。 (环境准备在专栏下单独一篇文章中) (1)分别在三台服务器XXX01、XXX02和XXX03上以副本集模式启动Mong

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包