> 文档中心 > Docker搭建MonggoDB环境

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中可用