You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Docker初始化脚本为MongoDB创建数据库、集合及用户

嘿,我来帮你搞定这个MongoDB初始化的需求!咱们可以利用Mongo官方镜像自带的初始化机制——容器启动时会自动执行/docker-entrypoint-initdb.d/目录下的脚本,这样就能自动完成数据库创建、集合创建和用户添加的操作,不用手动进容器折腾。

第一步:写好初始化脚本

新建一个init-mongo.js文件,把下面的代码放进去(你可以根据实际需求修改集合名称和用户密码):

// 切换到要创建的data数据库
use data;

// 创建集合,这里示例创建一个叫"user_profiles"的集合,你可以改成自己需要的名字
db.createCollection("user_profiles");

// 创建第一个用户:拥有data库的读写权限
db.createUser({
  user: "data_full_access",
  pwd: "YourStrongPassword123", // 一定要换成安全的密码!
  roles: [{ role: "readWrite", db: "data" }]
});

// 创建第二个用户:只有data库的只读权限
db.createUser({
  user: "data_read_only",
  pwd: "AnotherStrongPass456", // 同样要换成安全密码
  roles: [{ role: "read", db: "data" }]
});

第二步:修改你的Docker Compose文件

把原来的Compose文件更新一下,加上volumes配置,把刚才写的脚本挂载到容器的初始化目录里:

version: '3.1'
services:
  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: XXXXXXXXXXX
    ports:
      - 27017:27017
    volumes:
      # 把本地的init-mongo.js挂载到容器的初始化脚本目录
      - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js

第三步:启动容器并验证

执行下面的命令启动容器:

docker-compose up -d

等容器启动完成后,你可以用root账号连接Mongo来验证结果:

mongosh -u root -p XXXXXXXXXXX --authenticationDatabase admin

进入Mongo Shell后,执行下面的命令检查:

use data;
// 查看创建的集合
show collections;
// 查看创建的两个用户
show users;

这样就完美完成了你要求的所有任务:创建data数据库、生成集合、添加两个专属用户。

内容的提问来源于stack exchange,提问作者Naggappan Ramukannan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:36:18