容器化:MongoDB

1 缘起

开启容器化之路。

2 容器化MongDB

在这里插入图片描述

2.1 查看镜像

docker search mongodb

容器化:MongoDB_第1张图片

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
容器化:MongoDB_第2张图片

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 手动创建连接

容器化:MongoDB_第3张图片

4.2 基础配置

容器化:MongoDB_第4张图片

4.3 用户名密码

容器化:MongoDB_第5张图片

容器化:MongoDB_第6张图片

4.4 连接状态

容器化:MongoDB_第7张图片

容器化:MongoDB_第8张图片

5 CURD

5.1 用户角色

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

5.2 查看数据库

show dbs

容器化:MongoDB_第9张图片

5.3 创建数据库

格式:

use database_name

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

use tutorial

创建数据库后,会自动切换到数据库,当数据库中没有数据时,查看数据库,并不会在列表中展示。
容器化:MongoDB_第10张图片

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

容器化:MongoDB_第11张图片

你可能感兴趣的:(#,MongoDB,mongodb,数据库)