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

Docker 部署MongoDb

1. 编写docker-compose.conf 文件

version: '3'
services:mongo:image: mongo:latest  # 指定 MongoDB 版本,确保 >= 3.6container_name: mongo-replicarestart: alwayscommand: ["mongod", "--replSet", "rs0", "--oplogSize", "128", "--bind_ip_all"]ports:- 27017:27017volumes:- ./mongo_data:/data/dbenvironment:#初始化MongoDb管理员用户名MONGO_INITDB_ROOT_USERNAME: root#初始化MongoDb的管理员密码MONGO_INITDB_ROOT_PASSWORD: example

2. 启动

在包含 docker-compose.yml 文件的目录中运行以下命令启动 MongoDB:

docker-compose up -d

这将创建一个 MongoDB 副本集实例。--replSet 选项用于指定副本集名称为 rs0,--bind_ip_all 确保 MongoDB 绑定到所有 IP 地址。

本地27017端口映射到容器内部27017端口,把容器内部的/data/db目录挂载当前目录下的mongo_db目录,并且初始化了mongo的管理员用户和密码

3. 验证启动是否成功

命令行验证

docker ps

4. 初始化副本集

1.首次启动容器后,需要初始化 MongoDB 副本集。连接到 MongoDB 并运行以下命令:

docker exec -it mongo-replica mongo

2.然后在 MongoDB shell 中运行以下命令:

rs.initiate()

这样就初始化一个名为 rs0 的副本集。

3.验证配置

在 MongoDB shell 中,可以使用以下命令验证副本集的状态:

rs.status()rs0:PRIMARY> rs.status()
{"set" : "rs0","date" : ISODate("2024-10-24T09:31:21.318Z"),"myState" : 1,"term" : NumberLong(1),"syncingTo" : "","syncSourceHost" : "","syncSourceId" : -1,"heartbeatIntervalMillis" : NumberLong(2000),"majorityVoteCount" : 1,"writeMajorityCount" : 1,"optimes" : {"lastCommittedOpTime" : {"ts" : Timestamp(1729762278, 1),"t" : NumberLong(1)},"lastCommittedWallTime" : ISODate("2024-10-24T09:31:18.528Z"),"readConcernMajorityOpTime" : {"ts" : Timestamp(1729762278, 1),"t" : NumberLong(1)},"readConcernMajorityWallTime" : ISODate("2024-10-24T09:31:18.528Z"),"appliedOpTime" : {"ts" : Timestamp(1729762278, 1),"t" : NumberLong(1)},"durableOpTime" : {"ts" : Timestamp(1729762278, 1),"t" : NumberLong(1)},"lastAppliedWallTime" : ISODate("2024-10-24T09:31:18.528Z"),"lastDurableWallTime" : ISODate("2024-10-24T09:31:18.528Z")},"lastStableRecoveryTimestamp" : Timestamp(1729762278, 1),"lastStableCheckpointTimestamp" : Timestamp(1729762278, 1),"electionCandidateMetrics" : {"lastElectionReason" : "electionTimeout","lastElectionDate" : ISODate("2024-10-24T07:16:15.041Z"),"electionTerm" : NumberLong(1),"lastCommittedOpTimeAtElection" : {"ts" : Timestamp(0, 0),"t" : NumberLong(-1)},"lastSeenOpTimeAtElection" : {"ts" : Timestamp(1729754175, 1),"t" : NumberLong(-1)},"numVotesNeeded" : 1,"priorityAtElection" : 1,"electionTimeoutMillis" : NumberLong(10000),"newTermStartDate" : ISODate("2024-10-24T07:16:15.048Z"),"wMajorityWriteAvailabilityDate" : ISODate("2024-10-24T07:16:15.053Z")},"members" : [{"_id" : 0,"name" : "5ffc77d51cd0:27017","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 8176,"optime" : {"ts" : Timestamp(1729762278, 1),"t" : NumberLong(1)},"optimeDate" : ISODate("2024-10-24T09:31:18Z"),"syncingTo" : "","syncSourceHost" : "","syncSourceId" : -1,"infoMessage" : "","electionTime" : Timestamp(1729754175, 2),"electionDate" : ISODate("2024-10-24T07:16:15Z"),"configVersion" : 1,"self" : true,"lastHeartbeatMessage" : ""}],"ok" : 1,"$clusterTime" : {"clusterTime" : Timestamp(1729762278, 1),"signature" : {"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),"keyId" : NumberLong(0)}},"operationTime" : Timestamp(1729762278, 1)
}

5. 登陆MongoDb

可以通过mongo客户端或者Docker命令登陆,这里选择使用MongoDb自带的图形化工具进行登录

1.输入host,勾选Direct Connecton

2.点到Authentication,输入用户名密码和认证数据库

3.保存&登录

6. 创建角色和用户

1.点击Open MongoDB shell进入mongo shell

2.创建角色 用户分配权限

use admin;
db.createRole({role: "flinkrole",privileges: [{// 所有数据库中所有非系统集合的 grant 权限resource: { db: "", collection: "" },actions: ["splitVector","listDatabases","listCollections","collStats","find","changeStream" ]}],roles: [// 阅读 config.collections 和 config.chunks// 用于分片集群快照拆分。{ role: 'read', db: 'config' }]}
);db.createUser({user: 'flinkuser',pwd: 'flinkpw',roles: [{ role: 'flinkrole', db: 'admin' }]}
);

就可以使用新创建的用户进行登录MongoDb了

相关文章:

Docker 部署MongoDb

1. 编写docker-compose.conf 文件 version: 3 services:mongo:image: mongo:latest # 指定 MongoDB 版本,确保 > 3.6container_name: mongo-replicarestart: alwayscommand: ["mongod", "--replSet", "rs0", "--oplogSize&…...

【Hadoop】hadoop的路径分不清?HDFS路径与本地文件系统路径的区别

/usr/local/hadoop /user/hadoop /home/hadoop/ 这里有些路径名很相似,帮我区分? 在Hadoop生态系统中,理解文件存储的位置对于有效管理数据至关重要。Hadoop分布式文件系统(HDFS)提供了一个高度可靠的存储系统&#xf…...

倪师学习笔记-天纪-易经八卦

一、简介 卦代表事情,爻代表时机,三爻为一卦八卦对应的天相,六十四卦对应人间事 二、八卦性 1、乾 天父亲向下看,无所求,雄心万丈始终如一,贞,坚心,专心至刚,天威&am…...

自动驾驶性能分析时,非常有用的两个信息

自动驾驶的关键路径如下,传感器的数据发送给感知模块;感知模块根据传感器数据来确定车辆所处的环境,比如前方有没有障碍物,是不是和车道线保持着适当的距离等;感知处理之后的数据传递给规控模块,规控根据车…...

数据结构 - 并查集

文章目录 一、并查集原理二、并查集实现三、并查集的应用 一、并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复…...

canvas基础+应用+实例

文章目录 Canvas基础知识要点一、基本概念二、常用参数三、实例四、场景应用说明完结 Canvas基础知识要点 一、基本概念 Canvas是HTML5中的一个标签,用于在网页上通过JavaScript绘制图形、动画等。它提供了一个空白的、基于像素的绘图区域,就像一块画布…...

Linux命令 用户操作简介

目录 1. 添加新的用户账号 2. 删除用户账号 3. 修改用户账号 4. 用户口令的管理 示例汇总 添加新用户 删除用户 修改用户信息 更改用户口令 在 Linux 系统中,用户管理是一项重要的任务,包括添加新用户、删除用户、修改用户信息以及管理用户口令…...

大语言模型的Scaling Law【Power Low】

NLP-大语言模型学习系列目录 一、注意力机制基础——RNN,Seq2Seq等基础知识 二、注意力机制【Self-Attention,自注意力模型】 三、Transformer图文详解【Attention is all you need】 四、大语言模型的Scaling Law【Power Low】 文章目录 NLP-大语言模型学习系列目录一、什么是…...

windows环境下,使用docker搭建redis集群

参考: https://blog.csdn.net/weixin_46594796/article/details/137864842 https://www.cnblogs.com/niceyoo/p/14118146.html 史上最详细Docker搭建Redis Cluster集群环境 值得收藏 每步都有图,不用担心学不会-腾讯云开发者社区-腾讯云 一、基础环境描述 宿主机:192.168…...

Python(pandas库3)

函数 随机抽样 语法: n:要抽取的行数 frac:抽取的比例,比如 frac0.5,代表抽取总体数据的50% axis:示在哪个方向上抽取数据(axis1 表示列/axis0 表示行) 案例: 输出结果都为随机抽取。 空…...

WPF+MVVM案例实战(十)- 水波纹按钮实现与控件封装

文章目录 1、运行效果1、封装用户控件1、创建文件2、依赖属性实现2、使用封装的按钮控件1.主界面引用2.按钮属性设置3 总结1、运行效果 1、封装用户控件 1、创建文件 打开 Wpf_Examples 项目,在 UserControlLib 用户控件库中创建按钮文件 WaterRipplesButton.xaml ,修改 Us…...

数据结构————map,set详解

今天带来map和set的详解&#xff0c;保证大家分清楚 一&#xff0c;概念 map和set是一种专门用来搜索的容器或数据结构 map能存储两个数据类型&#xff0c;我们称之为<key-value>模型 set只能存储一个数据类型&#xff0c;我们称之为纯<key>模型 它们的效率都非…...

fdisk - Linux下的磁盘分区利器

文章目录 前言一、安装和启动二、基本命令2.1 查看分区表2.2 删除分区2.3 创建新分区2.4 更改分区类型2.5 其他指令 三、注意事项四、其他相关工具 前言 在Linux系统中&#xff0c;磁盘管理是维护系统性能和数据安全的重要环节。fdisk 是一个强大的命令行工具&#xff0c;专门…...

or-tools优化库记录

介绍 Or-tools是谷歌人工智能系列的运筹优化包&#xff0c;是一个用于优化的开源软件套件&#xff0c;针对性地解决车辆路线问题、流程优化、整数和线性规划以及约束规划等问题。 官网地使用说明比我详细&#xff0c;我就不多逼逼了 使用说明网址&#xff1a; https://develo…...

M1 Pro MacBook Pro 上的奇遇:Rust 构建失败,SIGKILL 惊魂记

你是否也曾在 M1 Pro MacBook Pro 上遇到过离奇的编译问题&#xff1f;这次我遇到的奇葩问题绝对值得一聊——一个仅在苹果M1 Pro上的神秘构建失败。其他设备都安然无恙&#xff0c;唯独它&#xff01;折腾了一番&#xff0c;终于让我揭开了这“阴谋”的真相。 问题描述 在运…...

重构商业生态:DApp创新玩法与盈利模式的深度剖析

随着区块链技术的发展&#xff0c;DApp&#xff08;去中心化应用&#xff09;正在从实验走向成熟。DApp以去中心化、透明性和不可篡改性为基础&#xff0c;结合智能合约&#xff0c;逐步改变传统商业运作模式&#xff0c;创造新的市场生态。本文将从DApp的独特优势、创新玩法和…...

2024首届亚洲国际电影节圆满落下帷幕

10月26日下午&#xff0c;2024首届亚洲国际电影节颁奖典礼在中国•澳门隆重举行。在这座充满时尚感的“东亚文化之都”&#xff0c;一座座金鹮奖杯&#xff0c;汇聚起全球电影艺术的荣耀之光&#xff0c;见证着无数电影梦想的傲然绽放。明星云集欢聚一堂&#xff0c;同庆澳门回…...

【Mybatis】动态SQL+配置文件+数据库连接池+企业规范(10)

本系列共涉及4个框架&#xff1a;Sping,SpringBoot,Spring MVC,Mybatis。 博客涉及框架的重要知识点&#xff0c;根据序号学习即可。 目录 本系列共涉及4个框架&#xff1a;Sping,SpringBoot,Spring MVC,Mybatis。 博客涉及框架的重要知识点&#xff0c;根据序号学习即可。 …...

layui扩展组件之----右键菜单

源码&#xff1a;rightmenu.js layui.define([element], function (exports) {let element layui.element;const $ layui.jquery;let MOD_NAME rightmenu;let RIGHTMENUMOD function () {this.v 1.0.0;this.author raowenjing;};String.prototype.format function () {…...

ue5实现数字滚动增长

方法1 https://www.bilibili.com/video/BV1h14y197D1/?spm_id_from333.999.0.0 b站教程 重写loop节点 方法二 写在eventtick里...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中&#xff0c;压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言&#xff0c;提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...