前提: mac上安装了docker
在这里插入图片描述

1. 拉取最新MongoDB镜像
docker pull mongo:latest

在这里插入图片描述

2. 查看镜像
docker images

在这里插入图片描述

3. 运行mongo容器
docker run -itd --name mongo -p 27017:27017 mongo --auth

在这里插入图片描述
提示:

  • docker run :创建一个新的容器并运行一个命令
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • -d: 后台运行容器,并返回容器ID;
  • –name=“nginx-lb”: 为容器指定一个名称;
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • –auth: 开启mongo容器密码认证

mongodb安装成功

4. 进入mongo容器
docker exec -it mongo mongo admin  

提示:

  • docker exec :在运行的容器中执行命令
  • -i :即使没有附加也保持STDIN 打开
  • -t :分配一个伪终端
5. 创建管理员账号和密码

这里账号和密码都设为了admin

db.createUser({ user:'admin',pwd:'admin',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]}); 

mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。

6. 用创建的账号登陆
db.auth('admin', 'admin')

在这里插入图片描述
管理员账户登录后,可以用该账户创建其他数据库管理员账号

use yourdatabase

db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })

role内建角色有如下:

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  • root:只在admin数据库中可用。超级账号,超级权限
MongoDB的GUI管理工具:Robo 3T


https://robomongo.org/download

MongoDB的备份和恢复
  • 备份方式: docker cp mongodump
  • 恢复方式: docker cp mongorestore

https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐