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' },
  ]
});

# 提前创建一些必要索引等
相关推荐
Dubhehug11 分钟前
4.B树和B+树的区别?为什么MySQL选择B+树作为索引?
数据库·b树·mysql·面试·b+树
linux修理工43 分钟前
n1 armbian 安装桌面环境并启用xrdp远程登录
linux·服务器·数据库
开开心心就好2 小时前
高效报价软件,简化商铺定价流程
服务器·数据库·安全·面试·职场和发展·电脑·symfony
钢铁男儿3 小时前
PyQt5高级界而控件(容器:装载更多的控件QDockWidget)
数据库·python·qt
阿蒙Amon6 小时前
C# Linq to SQL:数据库编程的解决方案
数据库·c#·linq
互联网搬砖老肖10 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
典学长编程11 小时前
数据库Oracle从入门到精通!第四天(并发、锁、视图)
数据库·oracle
积跬步,慕至千里11 小时前
clickhouse数据库表和doris数据库表迁移starrocks数据库时建表注意事项总结
数据库·clickhouse
极限实验室12 小时前
搭建持久化的 INFINI Console 与 Easysearch 容器环境
数据库
白仑色12 小时前
Oracle PL/SQL 编程基础详解(从块结构到游标操作)
数据库·oracle·数据库开发·存储过程·plsql编程