1、什么是MongoDB
MongoDB是一种基于文档的分布式数据库,是目前应用最为广泛的NoSQL数据库之一。相较于传统的关系型数据库,MongoDB具有更高的灵活性、可扩展性和性能优势。
2、安装
查找镜像
docker search mongo
拉取镜像
docker pull mongo
查看镜像是否拉取成功
docker images
运行mongo容器
docker run -itd --name mongo --restart=always --privileged=true -p 27017:27017 mongo --auth
参数说明
- -i:表示运行容器
- -t:表示容器启动后进入其命令行
- -d:守护式方式创建容器在后台运行
- -name:容器名称
- --restart=always: docker重新启动时,重启容器
- --privileged: container内的root拥有真正的root权限
- -p 27017:27017:端口映射(宿主机端口:容器端口),mongoDB默认是27017端口
- –auth:访问mongo需要鉴权(账号密码访问),这个参数要放在最后面,否则会报错
查看容器
docker ps
进入容器访问MongoDB
docker exec -it mongo mongosh admin
创建一个名为admin,密码为123456的用户
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
使用上面创建的用户信息进行连接
db.auth('admin', '123456');
3、MongoDB权限说明
| 权限 | 说明 |
|---|---|
| read | 允许用户读取指定数据库 |
| readWrite | 允许用户读写指定数据库 |
| dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
| userAdmin | 允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户 |
| clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
| readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 |
| readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
| userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
| dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |
| root | 只在admin数据库中可用。超级账号,超级权限 |
4、连接测试
通过navicat进行连接
新建数据库test
至此,docker安装MongoDB结束了。