MongoDB 自动化部署

部署在容器中,并且自动创建所需用户和权限等

bash 复制代码
# 启动 mongoDB
  sudo docker run -dit --name china_fish_mongo \
-p 27017:27017 \
-v /data/project1/db/mongo/config/mongod.conf:/etc/mongod.conf \
-v /data/project1/db/mongo/data:/data/db \
-v /data/project1/db/mongo/logs:/var/log/mongodb \
-v /Scripts/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=password_str\
--restart=always  \
mongo:6.0.2

# 启动 redis
sudo docker run -d --restart unless-stopped \
--name china_fish_redis -p 6379:6379 \
-v /dorothy/data/fish_server/redis/:/data \
redis:5 redis-server --save 60 1 "--requirepass password_str"

-v

这个参数可以自动创建指定的目录,注意确保docker 用户在这个目录存在权限

docker-entrypoint-initdb.d 容器第一次启动执行的脚本目录

The /docker-entrypoint-initdb.d directory is a special initialization directory used by several popular database Docker images to automatically execute scripts when a container is first started. This feature allows you to initialize your database with custom schemas, data, or configuration upon container creation.

参考 mongo - Official Image | Docker Hub

/Scripts/init-mongo.js

运行容器后的初始化流程

javascript 复制代码
# 数据库
db = db.getSiblingDB('admin');

# 创建用户
db.createUser({
  user: 'wod',
  pwd: 'ds0nxCM7fc65uM',
  roles: [
    { role: 'readWrite', db: 'xxx1' },
    { role: 'readWrite', db: 'xxx2' },
  ]
});

# 提前创建一些必要索引等
相关推荐
诺青23523 分钟前
MongoDB副本集
数据库·mongodb
正在走向自律1 小时前
金仓数据库打通电子证照国产化“最后一公里”——福建某地2TB MongoDB无缝迁移实践
数据库·mongodb·国产数据库·电科金仓
阿波罗尼亚1 小时前
复杂查询:直接查询/子查询/视图/CTE
java·前端·数据库
Go高并发架构_王工1 小时前
MySQL内存优化:缓冲池与查询缓存调优技术详解
数据库·mysql·缓存
半导体守望者1 小时前
TR帝尔编码器GSD文件 PROFIBUS XML PROFINET EtherCAT 文件 ADH CDH CMV等
xml·经验分享·笔记·机器人·自动化·制造
disanleya2 小时前
mysql怎么安装,新手安装MySQL后如何安全备份不踩坑?
数据库·mysql
zhennann2 小时前
VonaJS多租户同时支持共享模式和独立模式
数据库·typescript·node.js·nestjs
打码人的日常分享2 小时前
信息化系统安全建设方案
大数据·数据库·人工智能·安全·系统安全
zuoyou-HPU2 小时前
QT中的pyodbc.connect()函数
服务器·数据库·oracle
last_zhiyin2 小时前
Oracle sql tuning guide 翻译 Part 6-3 --- 用Hint影响优化器
数据库·sql·oracle·优化器·hint