docker 安装mongodb 实现数据,日志,配置文件外挂
1 背景
最近开发了一个评论系统之前用mysql来存储数据,但是考虑到后期业务增大访问量也会增大,为了兼容这种高并发的场景,因此经过多方面的考虑,我们最终选择了mongodb来存储评论信息。
2 docker 安装配置mongodb
2.1 拉取docker镜像
bash
docker pull mongo:4.2
docker pull 是docker拉取镜像的命令, mongo 代表mongodb的镜像 mongo: 后面的数字是拉取mongo镜像的版本号
2.2 创建相关文件夹
由于我将配置文件放在/usr/local文件夹下面,所以我们应执行如下命令
bash
cd /usr/local
mkdir -p mongodb/data mongodb/conf mongodb/logs
data 文件夹存放的是mongodb数据文件
conf 文件夹存放的是 mongodb的配置文件
logs 存放的是mongodb的日子文件
2.3 创建mongodb配置文件
首先我们到conf文件,创建一个mongod.conf的文件,然后再将配置信息保存到
执行的操作如下
bash
cd /usr/local/mongodb/conf
vim mongod.conf
将mongodb的配置拷贝到配置文件中
bash
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
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的语句如下
bash
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
相关参数说明
--name 指定容器名称
-d 后台运行
--privileged 是否开启容器操作宿主机的权限
--restart 设置容器的重启策略
-v 将宿主机文件挂载到容器中
-p 绑定宿主机和容器的端口
-e MONGO_INITDB_ROOT_USERNAME 设置mongodb数据库 root的账号
-e MONGO_INITDB_ROOT_PASSWORD 设置mongodb数据库root账号的密码,该密码尽量设置强点
--config 设置mongodb启动配置文件,注意文件地址应该是容器内的地址
检验mongodb 是否安装成
执行如下语句
bash
docker ps
如果返回如下效果
那说明mongodb已经安装完成