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();
        }

查看插入是否成功

 

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

@陈大六的博客 

posted @ 2022-04-18 17:56  天才卧龙  阅读(6996)  评论(0编辑  收藏  举报