在springboot项目中会用到mongoDb,既然用了docker就依然使用docker的方式安装mongoDb非关系型数据库,mongoDb相对于redis来说功能更加强大,比如redis里面存储一个集合想去筛选是很麻烦的,但是在mongoDb中确就很方便,当然二者都有自己的优势,一般缓存都是用redis,对于无杂的统计筛选数据需要缓存的建议使用mongoDb,下面就来说说docker怎么安装mongoDb。
目录
1、搜索mongo镜像下载
#在docker仓库中查找mongoDb数据库 docker search mongo #下载官方镜像 docker pull mongo #查看已经下载的镜像 docker images
2、docker运行并启动容器
#从镜像创建并启动mongoDb容器 docker run -p 27017:27017 --name mongoDb -d mongo:latest #查看容器是否已经启动 docker ps
3、创建mongoDb用户
#进入mongoDb容器,创建管理员 docker exec -it mongoDb bash #进入mongoDb mongo > use admin switched to db admin > db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]}); Successfully added user: { "user" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] } #出现创建成功提示就对了,退出管理员 > exit; #用刚创建的管理用户登录在创建个普通用户 mongo --port 27017 -u admin -p admin --authenticationDatabase admin > use test switched to db test > db.createUser({user:"tester",pwd:"tester",roles:[{role:"readWrite",db:"test"}]}); Successfully added user: { "user" : "tester", "roles" : [ { "role" : "readWrite", "db" : "test" } ] } > exit
4、mongoDb用户角色权限说明
- 数据库用户角色 read、readWrite
- 数据库管理角色 dbAdmin、dbOwner、userAdmin
- 集群管理角色 clusterAdmin、clusterManager、clusterMonitor、 hostManager
- 备份恢复角色 backup、restore
- 所有数据库角色 readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色 root
- 内部角色 __system
角色说明
- Read 允许用户读取指定数据库
- readWrite 允许用户读写指定数据库
- dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root 只在admin数据库中可用。超级账号,超级权限
至此mongoDb数据库据安装好了,可以愉快的玩耍使用了