在本教程中,我们将使用Docker Compose来部署MongoDB数据库,包括配置时区、数据库名、端口、用户密码等信息,同时挂载数据、日志、配置文件等相关路径到宿主机,以方便管理。
首先需要在目标机器上安装Docker和Docker Compose。如果你已经安装过了,可以跳过这一步。
请参考Docker官方文档安装Docker,并参考Docker Compose官方文档安装Docker Compose。
步骤1:创建挂载路径并授权
首先,我们需要创建挂载路径,并授权给MongoDB容器使用。我们可以使用以下脚本创建:
#!/bin/bash# 挂载路径DATA_DIR=/opt/docker-data/mongodb/data
LOG_DIR=/opt/docker-data/mongodb/log
CONFIG_DIR=/opt/docker-data/mongodb/config
# 如果目录不存在,则创建目录并设置权限if[! -d "$DATA_DIR"];thenmkdir -p "$DATA_DIR"chmod -R 777"$DATA_DIR"fiif[! -d "$LOG_DIR"];thenmkdir -p "$LOG_DIR"chmod -R 777"$LOG_DIR"fiif[! -d "$CONFIG_DIR"];thenmkdir -p "$CONFIG_DIR"chmod -R 777"$CONFIG_DIR"fi
这段脚本首先判断是否已存在相关路径,如果不存在,则创建路径;然后授权相关路径给MongoDB容器使用。
步骤2:编写Docker Compose文件
接下来,我们需要编写Docker Compose文件来部署MongoDB容器。以下是一个示例的docker-compose.yml文件,其中包含了配置时区、数据库名、端口、用户密码等信息,并挂载了数据、日志、配置文件等相关路径到宿主机。
version: "3.9"
services:
mongodb:
image: mongo:4.4
container_name: mongodb
restart: always
environment:
- TZ=Asia/Shanghai
- MONGO_INITDB_DATABASE=demo
- MONGO_INITDB_ROOT_USERNAME=demo
- MONGO_INITDB_ROOT_PASSWORD=demo2023...
ports:
- "6383:27017"
volumes:
- /opt/docker-data/mongodb/data:/data/db
- /opt/docker-data/mongodb/logs:/data/logs
- /opt/docker-data/mongodb/config:/data/configdb
command: mongod --config /etc/mongo/mongod.conf
在这个文件中,我们指定了使用MongoDB 4.4版本,并将其命名为mongodb容器。我们还指定了容器重启策略为always,这样在容器启动失败或退出时,Docker会自动重启它。另外,我们在容器中配置了以下环境变量:
- TZ:将时区设置为Asia/Shanghai。
- MONGO_INITDB_DATABASE:将数据库名设置为demo。
- MONGO_INITDB_ROOT_USERNAME:将用户名设置为demo。
- MONGO_INITDB_ROOT_PASSWORD:将密码设置为demo2023…。
我们还将容器端口映射到主机的6383端口,并将数据、日志、配置文件等相关路径挂载。
配置mongod.conf文件
我们需要在宿主机上创建MongoDB配置文件mongod.conf,并按需进行修改。以下是一个示例配置文件:
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
storage:
dbPath: /data/db
journal:
enabled: true
wiredTiger:
engineConfig:
cacheSizeGB: 1
engine: wiredTiger
directoryPerDB: true
journal:
enabled: true
mmapv1:
smallFiles: true
journal:
enabled: true
net:
bindIpAll: true
port: 27017
protocol: tcp
maxIncomingConnections: 10000
security:
authorization: enabled
你可以根据需要进行修改,例如:
- 修改systemLog.path字段指定MongoDB的日志文件路径
- 修改storage.dbPath字段指定MongoDB的数据文件路径
- 修改net.port字段指定MongoDB的端口号
- 修改security.authorization字段指定是否启用MongoDB的身份验证机制
启动MongoDB
在命令行中进入Docker Compose文件所在目录,使用以下命令启动MongoDB:
docker-compose up -d
启动后,可以使用以下命令查看容器是否正常运行:
dockerps
如果看到 mongodb 容器处于运行状态,则说明MongoDB已经成功部署。
版权归原作者 宋发元 所有, 如有侵权,请联系我们删除。