docker安装mongodb4.4.0
创建docker环境
搜索镜像
docker search mongo
拉取镜像
docker pull mongo:4.4.0
创建容器
/home/data/mongodb 为mongodb数据目录需提前创建
auth表示连接mongodb需要授权
docker run -itd --name mongo -v /home/data/mongodb:/data/db -p 27017:27017 mongo:4.4.0 --auth
docker exec -it mongo mongo admin
启动成功
docker ps
docker logs mongo
添加管理员用户
// 进入容器
docker exec -it mongo mongo admin
// 添加管理员用户
db.createUser({ user:'admin',pwd:'admin',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
// 认证
db.auth('admin', 'admin')
具体角色的功能
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
创建自定义数据库并设置账号密码
// 创建test库
use test
// 设置test库的用户和密码
db.createUser({user:'test',pwd:'123456',roles:['readWrite']})
// 通过账号密码登录 并添加users集合数据
db.auth("test","123456")
db.users.insert( { name:"test1", age:22} )