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

学无止境,精益求精

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

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



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

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 其他

账户密码可参考:

配置文件可参考:

 2.7、验证连接

ip addr

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


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


 连接成功

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


 2.8、项目中访问mongodb容器

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


 配置文件【可参考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();
}

查看插入是否成功

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


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