您现在的位置是:首页 >学无止境 >容器化:MongoDB网站首页学无止境

容器化:MongoDB

天然玩家 2024-06-30 06:01:02
简介容器化: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

在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。