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


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

    1 背景

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

    2 docker 安装配置mongodb

    2.1 拉取docker镜像
    docker pull mongo:4.2
    
    • 1

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

    2.2 创建相关文件夹

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

    cd /usr/local
    mkdir -p mongodb/data mongodb/conf mongodb/logs
    
    • 1
    • 2

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

    2.3 创建mongodb配置文件

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

    cd /usr/local/mongodb/conf
    vim mongod.conf
    
    • 1
    • 2

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

    
    storage:
      dbPath: /data/db
      # indexBuildRetry: true # 已失效
      journal:
        enabled: true
        commitIntervalMs: 100
    
    # where to write logging data.
    systemLog:
      path: /data/logs/mongod.log
      logAppend: false
      logRotate: rename
      destination: file
    # network interfaces
    security:
      authorization: enabled
    net:
      port: 27017
      bindIp: 0.0.0.0
      bindIpAll: true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    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
    
    • 1

    相关参数说明

    –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
    
    • 1

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

  • 相关阅读:
    leetcode556 下一个更大元素 III
    LeetCode【65. 有效数字】
    js 前端 Function.prototype.call.call(0[‘toString‘], *, 16)
    Mac系统 AndroidStudio Missing essential plugin:org.jetbrains.android报错
    tcp记录
    umi 配置global全局变量
    1.6-14:求10000以内n的阶乘
    gitlab登录出现的Invalid login or password问题
    Mysql数据库 16.SQL语言 数据库事务
    腾讯待办宣布关停,哪款待办事项提醒APP好?
  • 原文地址:https://blog.csdn.net/qq_21134059/article/details/134470179