docker 安装mongodb 实现 数据,日志,配置文件外挂

docker 安装mongodb 实现数据,日志,配置文件外挂

1 背景

最近开发了一个评论系统之前用mysql来存储数据,但是考虑到后期业务增大访问量也会增大,为了兼容这种高并发的场景,因此经过多方面的考虑,我们最终选择了mongodb来存储评论信息。

2 docker 安装配置mongodb

2.1 拉取docker镜像
docker pull mongo:4.2

docker pull 是docker拉取镜像的命令, mongo 代表mongodb的镜像 mongo: 后面的数字是拉取mongo镜像的版本号

2.2 创建相关文件夹

由于我将配置文件放在/usr/local文件夹下面,所以我们应执行如下命令

cd /usr/local
mkdir -p mongodb/data mongodb/conf mongodb/logs

data 文件夹存放的是mongodb数据文件
conf 文件夹存放的是 mongodb的配置文件
logs 存放的是mongodb的日子文件

2.3 创建mongodb配置文件

首先我们到conf文件,创建一个mongod.conf的文件,然后再将配置信息保存到
执行的操作如下

cd /usr/local/mongodb/conf
vim mongod.conf

将mongodb的配置拷贝到配置文件中


storage:dbPath: /data/db# indexBuildRetry: true # 已失效journal:enabled: truecommitIntervalMs: 100# where to write logging data.
systemLog:path: /data/logs/mongod.loglogAppend: falselogRotate: renamedestination: file
# network interfaces
security:authorization: enabled
net:port: 27017bindIp: 0.0.0.0bindIpAll: true

mongodb相关配置说明

bindIp 指定MongoDB监听的IP地址,默认为127.0.0.1(只允许本地连接)。可以设置为0.0.0.0以允许来自任意IP的连接。
port 指定MongoDB监听的端口号,默认为27017。可以根据需要设置其他端口。
dataPath 指定MongoDB的数据文件存放路径,默认为/data/db
logPath 指定MongoDB的日志文件存放路径,默认为/var/log/mongodb/mongod.log
logAppend 指定是否在日志文件末尾追加日志内容。默认为true,表示追加;false表示覆盖原有内容。
quiet 指定是否禁用控制台输出,默认为false,表示不禁用
oplogSizeMB 指定操作日志(oplog)的大小,单位为MB,默认为空,使用默认大小(通常为物理内存的5%)。
replication.replSetName 指定MongoDB复制集的名称。启用副本集时必须设置该参数。
security.authorization 指定MongoDB是否启用身份验证,默认为disabled,表示禁用。可以设置为enabled以启用身份验证机制。
processManagement.fork 指定是否以守护进程方式运行MongoDB,默认为true。可以设置为false以在前台运行。
storage.engine 指定存储引擎,默认为wiredTiger。可以设置为mmapv1或inMemory等。
bindIpAll 用于指定ip绑定mongodb服务器, 默认值为false

2.4 执行docker 安装mongodb

docker 执行安装mongodb的语句如下

docker run --name mongodb -d --privileged=true --restart=always -v /usr/local/mongodb/data:/data/db  -v /usr/local/mongodb/logs/:/data/logs/ -v /usr/local/mongodb/conf/mongod.conf:/data/conf/mongod.conf  -p 27017:27017  -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD='您的密码'  mongo:4.2 --config /data/conf/mongod.conf

相关参数说明

–name 指定容器名称
-d 后台运行
–privileged 是否开启容器操作宿主机的权限
–restart 设置容器的重启策略
-v 将宿主机文件挂载到容器中
-p 绑定宿主机和容器的端口
-e MONGO_INITDB_ROOT_USERNAME 设置mongodb数据库 root的账号
-e MONGO_INITDB_ROOT_PASSWORD 设置mongodb数据库root账号的密码,该密码尽量设置强点
–config 设置mongodb启动配置文件,注意文件地址应该是容器内的地址

检验mongodb 是否安装成
执行如下语句

docker ps

如果返回如下效果
在这里插入图片描述
那说明mongodb已经安装完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/147424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言--每日五道练习题--Day18

第一题 1.设a为整型变量&#xff0c;不能正确表达数学关系&#xff1a;10<a<15的C语言表达式是&#xff08;&#xff09; A&#xff1a;10<a<15 B&#xff1a;a11|| a12 || a13 || a14 C&#xff1a;a>10 && a<15 D&#xff1a;!(a<10) &&…

2023年咸阳市《网络建设与运维》赛题解析------四、安全配置

安全配置 说明:IP地址按照题目给定的顺序用“ip/mask”表示,IPv4 any地址用0.0.0.0/0,IPv6 any地址用::/0,禁止用地址条目,否则按零分处理。 1.FW1配置IPv4 nat,实现集团产品1段IPv4访问Internet IPv4,转换ip/mask为200.200.200.16/28,保证每一个源IP产生的所有会话将…

Spring+Mybatis整合

整合代码 源码执行流程

Java拼图游戏

运行出的游戏界面如下&#xff1a; 按住A不松开&#xff0c;显示完整图片&#xff1b;松开A显示随机打乱的图片。 User类 package domain;/*** ClassName: User* Author: Kox* Data: 2023/2/2* Sketch:*/ public class User {private String username;private String password…

超详细 | 萤火虫算法原理及其实现(Matlab)

群智能(Swarm Intelligence&#xff0c;SI)是一类分散自组织系统的集体智能行为的总称&#xff0c;该表述最早在1989年由Gerardo Beni在分子自动机系统中提出。SI系统可视作一组简单的个体&#xff0c;其个体与个体、个体与环境之间存在交互作用&#xff0c;最终表征出智能行为…

MPN – 制造零件号

S/4 1610 中的 MPN – 基于 NAST 的输出管理 我试图查找有关 MPN 设置的信息&#xff0c;但找不到详细的配置步骤。在浏览了一些信息和 help.sap 链接后&#xff0c;我能够在 S/4 1610 系统中配置 MPN 设置&#xff0c;这与使用旧输出类型&#xff08;Nast 和输出类型 NEU&…

【 云原生 | K8S 】kubeadm 部署Kubernetes集群

目录 1 环境准备 2 所有节点安装docker 3 所有节点安装kubeadm&#xff0c;kubelet和kubectl 4 部署K8S集群 4.1 查看初始化需要的镜像 4.2 初始化kubeadm 4.3 设定kubectl 4.4 所有节点部署网络插件flannel master&#xff08;2C/4G&#xff0c;cpu核心数要求大于2&am…

Jenkins代码检测和本地静态检查

1&#xff1a;Jenkins简介 Jenkins是一个用Java编写的开源的持续集成工具&#xff1b;Jenkins自动化部署可以解决集成、测试、部署等重复性的工作&#xff0c;工具集成的效率明显高于人工操作&#xff1b;并且持续集成可以更早的获取代码变更的信息&#xff0c;从而更早的进入测…

【数据结构】10道经典面试题目带你玩转链表

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.移除链表元素 二.反转链表 三.链表的中间结点 四.链表中倒数第K个结点 五.合并两个有序链表 六.链表分割 七.链表的回文结构 八.相交链表 九.环形链表 一.移…

C++初阶 日期类的实现(上)

目录 一、前置准备 1.1获得每月的天数 1.2获得每年的天数 1.3构造函数&#xff0c;析构函数和拷贝构造函数 二、日期与天数的,-,,-实现 2.1运算符重载 2.2运算符的实现 2.3-运算符的实现 2.4-运算符的实现 三、&#xff0c;--的实现 3.1前置&#xff0c;后置的实现 …

(带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程

源码简介&#xff1a; 1、会员管理&#xff1a; 该系统分为三个级别的会员流程&#xff1a;总站管理员、代理与会员&#xff08;会员有普通会员、中级会员和高级会员三个等级&#xff09;。总站管理员可以添加代理用户并为其充值余额&#xff0c;代理用户可以为普通用户充值余…

Mysql-CRUD(增删查改)

CRUD : Create( 创建 ), Retrieve( 读取 ) &#xff0c; Update( 更新 ) &#xff0c; Delete &#xff08;删除&#xff09; 1.Create 语法&#xff1a; INSERT [ INTO ] table_name [( column [, column ] ...)] VALUES (value_list) [, (value_list)] ... 1.1 全列…

java 访问sqlserver 和 此驱动程序不支持jre1.8错误

sqlserver数据如下&#xff1b; TestSQL.java&#xff1b; import java.sql.*;public class TestSQL {public static void main(String[] args) throws ClassNotFoundException, SQLException {String driverName "com.microsoft.sqlserver.jdbc.SQLServerDriver";…

nacos集群部署

GitHub - nacos-group/nacos-k8s: This project contains a Nacos Docker image meant to facilitate the deployment of Nacos on Kubernetes using StatefulSets. 需要修改两个文件 --- apiVersion: v1 kind: Service metadata:name: nacos-headlessnamespace: project-guli…

vue-router的编程式导航有哪些方法?

Vue Router 提供了几种编程式导航的方法&#xff0c;主要包括以下几种&#xff1a; router.push(location, onComplete?, onAbort?)&#xff1a;跳转到新的 URL&#xff0c;类似于 <router-link> 的 to 属性。可以指定路径或者命名的路由。 router.replace(location, …

[ATC复盘] abc329 20231118

[ATC复盘] abc329 20231118 总结A - Spread1. 题目描述2. 思路分析3. 代码实现 B - Next1. 题目描述2. 思路分析-3. 代码实现 C - Count xxx1. 题目描述2. 思路分析3. 代码实现 D - Election Quick Report2. 思路分析3. 代码实现 E - Stamp2. 思路分析3. 代码实现 F - Colored…

git基本操作(配图超详细讲解)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 创建git本地仓库 配置仓库 认识工作区&#xff0c;暂存区&#xff0c;版本库 修改文件 版本回退 撤销修改 删除文件 创建git本地仓库 要提前说的是&#xff0c;仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂…

内网穿透的应用-通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

acme在同一台服务器上设置多个Ali_key实现自动ssl申请和续期

在同一台服务器上设置多个Ali_key&#xff0c;您可以按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保您已经安装了acme.sh工具。如果没有安装&#xff0c;请先安装acme.sh&#xff0c;您可以使用以下命令安装acme.sh&#xff1a; curl https://get.acme.sh | sh安装完…