Dokcer搭建各种服务|第五章 安装mongodb

本文详细介绍使用Docker快速部署MongoDB的方法,包括拉取镜像、设定角色权限及连接数据库的操作步骤。同时,对比MongoDB与MySQL的区别,解析NoSQL数据库的优势与应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这个系列是对我学习docker的一个总结,先从各种服务的搭建开始,直接带大家实战入门。其实docker本身是运维技能,后端同学只需要了解即可。我这个系列也不会对docker太过深入,点到为止。
这个系列暂时完结,常用软件就以mongodb收官。

什么是mongodb

很多学习能力强可以跳过次章。
先从mongodb和mysql的区别开始把,mongodb称作NoSQL(Not Only SQL )数据库,也叫非关系型数据库,和传统的mysql这样的关系型数据库最大的区别就是,数据结构!简单理解就是nosql中存储的都是json文档,而非表格(想深入学习的还请自行百度)。优势是增查非常快,json结构全文检索也非常方便。通常用来存储大量的,不会变动的内容,比如日志(有兴趣的同学可以学习一下kafka+elk)和聊天记录等。

拉取镜像

不多介绍,直奔主题:
注意这里搜索的是mongo,不是mongodb。
这边我们不需要配置,也不想把data持久化到自己宿主服务器上。所以跳过挂载,有需要的可以自己挂载。
命令:

docker run --name mymongo -d -p 27017:27017 mongo --auth

–auth开启权限。如果你不想设置密码可以不需要。其余不解释。

设定角色权限

到这一步其实都是mongodb的知识了,大部分都是需要进入mongodb来,直接操作数据库了,类似mysql。
进入容器内部,并进入mongodb的admin数据库

docker exec -it mymongo mongo admin

创建root用户,赋予userAdminAnyDatabase角色(角色详情在下一节),设置密码为123,在admin数据库中。

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

用root账户登陆:

db.auth("root","123");

新建/切换数据库:

use test_db

创建readWrite角色的用户test,密码为123,只能操作test_db数据库。

db.createUser({  user: 'test',  pwd: '123',  roles: [ { role: "readWrite", db: "test_db" } ]  });

连接mongodb

下载Robo 3T,进行如下操作,就可以以test用户,操作test_db库

在这里插入图片描述
在这里插入图片描述

如何操作mongodb

这边不多介绍,可以参考菜鸟教学。
在这里插入图片描述

附录角色表

内建的角色
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system
角色说明:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
注意
root:只在admin数据库中可用。超级账号,超级权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值