docker安装mongoDb并创建用户

在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数据库据安装好了,可以愉快的玩耍使用了

发表评论