docker-compose部署MongoDB以及用户管理

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: docker-compose部署MongoDB以及用户管理

使用docker-compose部署MongoDB

安装前准备

# 下载镜像
docker pull mongo:4.4.8-rc0-focal

# 在自己的Linux中新建一个mongo文件夹
mkdir ./mongo

# 创建docker-compose.yml  以及需要挂载的目录
cd ./mongo
touch docker-compose.yml
mkdir -p ./data/db

vi docker-compose.yml

version: '3.6'
services:
  mongo:
    restart: always
    # build: .
    image: mongo:4.4.8-rc0-focal
    container_name: mongo
    ports:
      - 27017:27017
    volumes:
      # 数据目录  挂载出来后,即使删除容器,再用该挂载数据与docker-compose.yml文件启动容器,即可恢复到原来的数据以及用户信息
      - ./data/db:/data/db
      # 自定义数据备份目录,可以定时全量备份数据出来
      - ./mybackup:/mybackup
      - /etc/localtime:/etc/localtime
    environment:
      - TZ=Asia/Shanghai
      # 缓存大小配置为使用 1.5GB , 考虑服务器中还有其他服务需要占用内存,可自定义大小
      - wiredTigerCacheSizeGB=1.5

    # --auth 开启权限认证       --noauth 关闭权限认证,找回密码时使用此配置重启服务
    command: mongod --auth

启动/停止

# 启动
docker-compose up         # 前台运行,退出即停止运行
docker-compose up -d      # 后台运行

# 停止
docker stop mongo

# 删除容器以及网卡    挂载的数据目录还在,重新启动即可恢复
docker-compose down

配置admin数据库的root用户

# 进入容器
docker exec -it mongo bash
# 登陆mongo, 创建root,用户名可自定义,角色使用root
mongo
use admin
db.createUser( {
   
    user: "root", pwd: "123456", roles: [ {
   
    role: "root", db: "admin" } ] } )

# 登陆
db.auth("root", "123456")

# 查看当前数据库的用户
show users

在这里插入图片描述

创建业务数据库、用户

# 如果数据库不存在则自动创建
use im   
# 创建dbOwner的用户,用于项目连接使用
db.createUser( {
   
    user: "imAdmin", pwd: "123456", roles: [ {
   
    role: "dbOwner", db: "im" } ] } )
# 创建read的用户,只有查询数据的权限,可分配给其他同事查看数据
db.createUser( {
   
    user: "imQuery", pwd: "123123", roles: [ {
   
    role: "read", db: "im" } ] } )

show users

连接验证(用户权限是否正常)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

MongoDB 数据库默认角色说明

官方文档连接

1. 数据库用户角色:read、readWrite
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
4. 备份恢复角色:backup、restore
5. 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
6. 超级用户角色:root

用户的其他操作

修改用户角色

# 此语句也可以用来修改用户其他信息
db.updateUser("testuser", {
   
   roles:[{
   
   role:"dbOwner", db:"testdb"}]})

修改密码

# 两种方式
db.updateUser('testuser', {
   
   pwd: '123123'}) 
db.changeUserPassword('testuser','123123')

删除用户

# 删除testadmin用户
db.dropUser('testadmin')

root用户,忘记密码怎么办

思路:由 auth 改为 noauth 模式重启,修改用户密码后,再恢复为auth模式重启即可;

具体过程:略

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
7天前
|
jenkins 持续交付 网络安全
Jenkins——使用Docker部署Jenkins详解
Jenkins——使用Docker部署Jenkins详解
19 0
|
1天前
|
应用服务中间件 Docker 容器
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
这篇文章介绍了在Docker中安装Tomcat的过程,包括搜索Tomcat镜像、拉取镜像、目录挂载的准备、创建并挂载容器,以及如何进入容器和进行测试。文中还说明了如何将WAR包部署到Tomcat服务器并访问部署的应用。
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
|
4天前
|
JSON JavaScript 开发者
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
【8月更文挑战第7天】Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
|
2天前
|
运维 Java Devops
阿里云云效操作报错合集之部署docker时遇到报错,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
8天前
|
Ubuntu Linux Docker
弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门
弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门
50 4
|
4天前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
14 0
|
5天前
|
存储 Ubuntu Linux
如何在 Ubuntu 上使用 Docker 容器化和部署多个 WordPress 应用程序
如何在 Ubuntu 上使用 Docker 容器化和部署多个 WordPress 应用程序
12 0
|
5天前
|
存储 Shell API
G6VP 与 GraphScope部署问题之拉取并启动 GraphScope 的 Docker 镜像如何解决
G6VP 与 GraphScope部署问题之拉取并启动 GraphScope 的 Docker 镜像如何解决
|
5天前
|
Linux Docker 异构计算
模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别 + 信息抽取(UIE-X)
模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别 + 信息抽取(UIE-X)
9 0
|
5天前
|
JSON 文字识别 Linux
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)
15 0

热门文章

最新文章