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(); }
查看插入是否成功
万事大吉,大吉大利,今日吃鸡,明日核酸检测