创建目录
1
| mkdir -p /mydata/mongodb/data/db /mydata/mongodb/data/log /mydata/mongodb/data/config
|
compose
1 2 3 4 5 6 7 8 9 10 11 12 13
| version: '3.8' services: mongo: container_name: mongo image: mongo:5.0 # 可以修改为自己需要的版本 restart: always ports: - 27017:27017 volumes: - /etc/localtime:/etc/localtime # 时区 - /mydata/mongodb/data/db:/data/db # 挂载数据目录 - /mydata/mongodb/data/log:/var/log/mongodb # 挂载日志目录 - /mydata/mongodb/data/config:/etc/mongo # 挂载配置目录
|
启动
1
| docker-compose -f mongodb-compose.yaml up -d
|
配置用户和库
进入容器
1
| docker exec -it mongo /bin/bash
|
root用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 登录 mongo admin # 查看当前所在数据库,默认在admin数据库 use admin # 创建root用户,本质:为root用户赋予userAdminAnyDatabase角色作用在admin数据库上,为root用户赋予readWriteAnyDatabase角色作用再所有数据库上 db.createUser( { user: 'root', pwd: 'root_pwd', roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } )
|
普通用户(自定义库)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 登录 mongo admin # 查看当前所在数据库,默认在admin数据库 use xcrj_db # 创建root用户,本质:为xcrj用户赋予dbOwner角色作用在xcrj_db数据库上 db.createUser({ user:'xcrj_user',pwd:'xcrj_pwd',roles:[ { role:'dbOwner', db: 'xcrj_db'}]}) # 退出mongo exit; # 登录 mongo xcrj_db -u xcrj_user -p # 查看当前db db
|
用户权限
root 包含角色readWriteAnyDatabase、dbAdminAnyDatabase、userAdminAnyDatabase、clusterAdmin、restore和backup联合之后所有的权限。 dbOwner 在当前db中执行任意操作 userAdmin 用户管理,在当前db中管理user的权限 read 只读数据权限 readWrite 读写数据权限
作者声明