容器化:MongoDB

1 缘起

开启容器化之路。

2 容器化MongDB

在这里插入图片描述

2.1 查看镜像

docker search mongodb

在这里插入图片描述

2.2 安装

  • 前台安装
sudo docker run  \
--name mongodb \
-p 27017:27017  \
-v /home/xindaqi/mongodb/conf:/data/configdb \
-v /home/xindaqi/data/mongodb-data:/data/db \
-v /home/xindaqi/mongodb/logs:/data/log \
mongo --auth
  • 守护进程安装
sudo docker run  \
--name mongodb \
-p 27017:27017  \
-v /home/xindaqi/mongodb/conf:/data/configdb \
-v /home/xindaqi/data/mongodb-data:/data/db \
-v /home/xindaqi/mongodb/logs:/data/log \
-d mongo --auth
  • Docker重启后自动重启MongoDB
sudo docker run  \
--name mongodb \
--restart always \
-p 27017:27017  \
-v /home/xindaqi/mongodb/conf:/data/configdb \
-v /home/xindaqi/data/mongodb-data:/data/db \
-v /home/xindaqi/mongodb/logs:/data/log \
-d mongo --auth

3 用户操作

3.1 登录

docker exec -it container_id mongosh admin

MongoDB版本:6.0.6
Mongsh版本:1.9.0
在这里插入图片描述

3.2 创建用户

MongoDB默认没有用户,
需要手动创建用户。

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

在这里插入图片描述

3.3 验证用户

db.auth("admin", "admin123456");

在这里插入图片描述

4 客户端

NoSQLBooster For MongoDB
传送门:https://www.mongobooster.com/downloads

4.1 手动创建连接

在这里插入图片描述

4.2 基础配置

在这里插入图片描述

4.3 用户名密码

在这里插入图片描述

在这里插入图片描述

4.4 连接状态

在这里插入图片描述

在这里插入图片描述

5 CURD

5.1 用户角色

序号角色描述
1read提供读取所有非系统的集合(数据库)
2readWrite提供读写所有非系统的集合(数据库)和读取所有角色的所有权限
3dbAdmin提供执行管理任务的功能,例如与架构相关的任务,索引编制,收集统计信息。此角色不授予用户和角色管理权限。
4dbOwner提供对数据库执行任何管理操作的功能。此角色组合了readWrite,dbAdmin和userAdmin角色授予的权限。
5userAdmin提供在当前数据库上创建和修改角色和用户的功能。由于userAdmin角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供对数据库的超级用户访问权限,或者,如果作用于管理数据库,则提供对群集的访问权限。
6clusterAdmin提供最佳的集群管理访问。此角色组合了clusterManager,clusterMonitor和hostManager角色授予的权限。此外,该角色还提供了dropDatabase操作。
7readAnyDatabase仅在admin 数据库中使用,提供所有数据库的读权限。
8readWriteAnyDatabase仅在admin 数据库中使用,提供所有数据库的读写权限
9userAdminAnyDatabase仅在admin 数据库中使用,提供与userAdmin相同的用户管理操作访问权限,允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供超级用户访问权限。
10dbAdminAnyDatabase仅在admin 数据库中使用,提供与dbAdmin相同的数据库管理操作访问权限,该角色还在整个群集上提供listDatabases操作。
11root仅在admin 数据库中使用,提供超级权限

5.2 查看数据库

show dbs

在这里插入图片描述

5.3 创建数据库

格式:

use database_name

数据库不存在:创建数据库
数据库存在:切换到该数据库

use tutorial

创建数据库后,会自动切换到数据库,当数据库中没有数据时,查看数据库,并不会在列表中展示。
在这里插入图片描述

5.4 为数据库添加用户

db.createUser({ user: 'tutorial', pwd: 'admin123456', roles: [ { role: "dbOwner", db: "tutorial" } ] });

在这里插入图片描述

6 FAQ

6.1 无法使用mongo登录

在这里插入图片描述

xindaqi@xindaqi:~/mongodb$ docker exec -it ece80fb0f658 mongo admin
OCI runtime exec failed: exec failed: unable to start container process: exec: “mongo”: executable file not found in $PATH: unknown

MongoDB5.0以后,使用mongosh登录。
官方:https://github.com/docker-library/mongo/issues/558

docker exec -it ece80fb0f658 mongosh admin

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值