• docker 安装 mongodb 容器 及 挂载 配置文件、数据存放目录,日志存放目录,备份目录等


    十年河东,十年河东,莫欺少年穷

    学无止境,精益求精

    1、下载镜像

    docker pull mongo

    2、后台运行容器并指定挂载

    2.1、新建相关目录、文件

    cd /mnt   --进入 mnt 目录
    
    mkdir mongodb  --创建mongodb 目录
    
    cd /mnt/mongodb  -- 进入 mongodb 目录
    
    mkdir backup  --创建 备份目录
    
    mkdir data  --创建数据保存目录
    
    mkdir conf  --创建配置文件目录
    
    mkdir logs   --创建日志目录
    
    cd /mnt/mongodb/conf --进入配置文件目录 
    
    vim mongodb.conf  --新建mongodb 配置文件

    2.2、编辑配置文件为

    # Where and how to store data.
    storage:
      dbPath: /mnt/mongodb/data
      journal:
        enabled: true
    systemLog:
      destination: file
      logAppend: true
      path:  /mnt/mongodb/logs/mongod.log
    
    # network interfaces
    net:
      port: 27017
      bindIp: 0.0.0.0
    
    #auth 
    
    auth:false
    

    dbpath :数据库文件存放目录

    path:日志存放目录

    port:端口号

    bindip : 0.0.0.0 允许外部容器访问 ,注:不要写127.0.0.1

    auth : 不使用密码账户登录

    2.3、后台运行容器

    docker run --name mongo --restart=always -p 27017:27017 --net=mynet2 -v /mnt/mongodb/data:/data/db -v /mnt/mongodb/backup:/data/backup -v /mnt/mongodb/logs:/data/log -v /mnt/mongodb/conf:/data/conf -d mongo

    --name : 指定容器名称

    --restart = always ,会随着docker的启动而启动

    -p 暴露端口

    --net 指定特定的网络段,具体可参考:docker 自定义网络 不使用 --link 也能实现容器间网络互通

    -v 挂载,分别挂载数据目录,备份目录,日志存放目录,配置文件挂载

    -d 后台运行

    2.4、在linux主机上修改配置文件,验证配置文件是否挂载成功

    [root@localhost mongodb]# vim conf/mongodb.conf

    在linux主机上编辑 配置文件

    新增如下内容 【最大访问客户端数,默认2000,修改为1000】:

    #maxConns
    #
    maxConns:1000

    进入容器,查看配置文件是否同步变化:

    docker exec -it c7dd4de8148b /bin/bash
    
    cd data/conf/
    
    cat mongodb.conf

     配置文件同步变化,挂载成功。

    2.5、数据备份

    在运行一段时间以后,我们可以执行如下命令进行数据库备份:

    docker exec mongo sh -c 'exec var=`date +%Y%m%d%H%M` && mongodump -h localhost --port 27017 -u jsmith -p password -d dbname -o /data/backup/$var_test1.dat'

    2.6 其他

    账户密码可参考:https://www.cnblogs.com/smiler/p/10112676.html

    配置文件可参考:https://www.cnblogs.com/xiaoshenglele/articles/7041762.html

     2.7、验证连接

    ip addr

     

     连接成功

     2.8、项目中访问mongodb容器

     配置文件【可参考redis容器:netcore3.1 webApi项目发布Docker后,通过容器互联,访问redis 【部署redis到docker】

     "MongoDbConnect": "mongodb://mongo:27017",

    容器不同网络间互联

    [root@localhost webapp]# docker network connect mynet webapp01  
    [root@localhost webapp]# docker network connect mynet2 webapp01  

    C# 增加一条日志

            /// <summary>
            /// 插入一条mongodb日志
            /// </summary>
            /// <returns></returns>
            [HttpGet]
            [AllowAnonymous]
            [Route("MongoTsty")]
            public IActionResult MongoTsty()
            { 
                Log.Inst.Error($"mogodb测试");
                return Ok();
            }

    查看插入是否成功

     万事大吉,大吉大利,今日吃鸡,明日核酸检测

    @陈大六的博客 

  • 相关阅读:
    面向对象的设计原则
    在VC中Debug下是运行结果正确的,但是在Release下却有错,总算找到原因
    聚合和组合
    痛苦呀,代码
    MSDN和VS98
    阅读代码的难度
    好香,方便面
    人的重要性
    FIT For .NET(1)
    ASP.NET Microsoft .NET Pet Shop 3.x(二)
  • 原文地址:https://www.cnblogs.com/chenwolong/p/dockermongo.html
Copyright © 2020-2023  润新知