Docker搭建MonggoDB环境
目录
- 前言
- 1、拉取镜像
- 2、创建挂载目录
- 3、创建配置文件
- 4、启动
- 5、创建用户
- 6、重启
- 7、roles列表
前言
在安装MonggoDB
前,需要知道与SpringBoot
整合时的最佳匹配版本,根据SpringBoot
版本下载对应的MonggoDB
版本。
参考:《SpringBoot与MongoDB版本对照参考》
1、拉取镜像
docker pull mongo:4.4.12
2、创建挂载目录
mkdir -p /home/docker/mongodb/single/datamkdir -p /home/docker/mongodb/single/logmkdir -p /home/docker/mongodb/single/conf
3、创建配置文件
创建配置文件:
vim /home/docker/mongodb/single/conf/mongodb.conf
内容:
#端口port=27017#数据库文件存放目录dbpath=/home/docker/mongodb/single/data#日志文件存放路径logpath=/home/docker/mongodb/single/log#使用追加方式写日志logappend=true#以守护线程的方式运行,创建服务器进程fork=true#最大同时连接数maxConns=100#不启用验证#noauth=true#每次写入会记录一条操作日志journal=true#存储引擎有mmapv1、wiredTiger、mongorocksstorageEngine=wiredTiger#访问IPbind_ip=0.0.0.0#用户验证auth=true
4、启动
docker run -d -p 27017:27017 \-v /home/docker/mongodb/single/data:/data/db \-v /home/docker/mongodb/single/conf:/data/conf \-v /home/docker/mongodb/single/log:/data/log \--name mongodb mongo:4.4.12
5、创建用户
进入容器:
docker exec -it mongodb mongo admin
操作命令:
#创建管理员用户db.createUser({user:"root",pwd:"123456",roles:["root","readWrite"]});#创建普通用户-读写权限,readWrite:读写,read:只读,库管理员:userAdminAnyDatabasedb.createUser({user:"test",pwd:"123456",roles:["readWrite"]})#查看用户show users#验证用户密码,返回1,则表示成功db.auth("root","123456")#修改用户密码db.updateUser("root",{pwd:"new_pwd"})#删除用户db.dropUser("root")#为非admin数据库,设置用户,role为对应角色,db为所属数据库db.createUser({user: "test", pwd: "123456", roles: [{ role: "readWrite", db: "test" }]})
6、重启
docker restart mongodb
7、roles列表
roles 如下:
数据库用户角色(Database User Roles)
- read : 授权User只读数据的权限,允许用户读取指定的数据库
- readWrite 授权User读/写数据的权限,允许用户读/写指定的数据库
数据库管理角色(Database Admininstration Roles)
- dbAdmin:在当前的数据库中执行管理操作,如索引的创建、删除、统计、查看等
- dbOwner:在当前的数据库中执行任意操作,增、删、改、查等
- userAdmin :在当前的数据库中管理User**,**创建、删除和管理用户。
备份和还原角色(Backup and Restoration Roles)
- backup
- restore
跨库角色(All-Database Roles)
- readAnyDatabase:授权在所有的数据库上读取数据的权限,只在admin 中可用
- readWriteAnyDatabase:授权在所有的数据库上读写数据的权限,只在admin 中可用
- userAdminAnyDatabase:授权在所有的数据库上管理User的权限,只在admin中可用
- dbAdminAnyDatabase: 授权管理所有数据库的权限,只在admin 中可用
集群管理角色(Cluster Administration Roles)
- clusterAdmin:授权管理集群的最高权限,只在admin中可用
- clusterManager:授权管理和监控集群的权限
- clusterMonoitor:授权监控集群的权限,对监控工具具有readonly的权限
- hostManager:管理server
超级角色(super master Roles)
- root :超级账户和权限,只在admin中可用