Docker之MongoDB容器中创建用户与授权操作

Docker之MongoDB容器中创建用户与授权操作

文章目录

  • Docker之MongoDB容器中创建用户与授权操作
  • [1. 拉取MongoDB镜像](#1. 拉取MongoDB镜像)
  • [2. 运行容器](#2. 运行容器)
  • [3. 创建用户与授权](#3. 创建用户与授权)
    • [1. 创建管理员用户](#1. 创建管理员用户)
    • [2. 管理员用户创建其他用户](#2. 管理员用户创建其他用户)
    • [2. 修改用户](#2. 修改用户)
    • [4. 删除用户](#4. 删除用户)

其他配置参照docker Hub官网:Mongo - Official Image | Docker Hub

1. 拉取MongoDB镜像

shell 复制代码
docker pull mongo:4.2.23

2. 运行容器

  1. 运行一个名称为auth_mongo镜像,且挂载容器数据券为F:/dockeData/mongodb4223/data/db:/data/db
  2. 通过--auth来开启授权功能
shell 复制代码
# --auth表示连接mongodb时需要授权
docker run -it -d --name auth_mongo -v F:/dockeData/mongodb4223/data/db:/data/db -p 27017:27017 mongo:4.2.23 --auth

3. 创建用户与授权

进入容器内部创建用户

1. 创建管理员用户

shell 复制代码
#进入容器
docker exec -it auth_mongo mongo admin
# 添加管理员用户
db.createUser({ user:'admin',pwd:'admin@123',roles:[ { role:'root', db: 'admin'}]});
# 切换到admin数据库
use admin
# 登录认证
db.auth('admin', 'admin@123')
# 查看数据库
show dbs

2. 管理员用户创建其他用户

  1. 先登录管理员账户;
  2. 切换到某个数据库并创建其他用户
shell 复制代码
# 1.先使用admin账户登录
use admin
db.auth('admin','admin@123')
# 2.切换到并创建my_db库
use my_db
# 在my_db数据库下创建test_user用户
db.createUser({user:'test_user',pwd:'test_user',roles:['readWrite']})
#通过账号密码登录并添加users集合数据
db.auth("test_user","test_user")
# 插入测试数据
db.users.insert( { name:"jinshengyuan", age:22} )

2. 修改用户

如修改test_user用户的角色

shell 复制代码
db.updateUser({user:'test_user',pwd:'test_user',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})

4. 删除用户

shell 复制代码
# 删除用户
db.dropUser('test_user')

)

复制代码
相关推荐
小张是铁粉1 分钟前
docker学习二天之镜像操作与容器操作
学习·docker·容器
烟雨书信14 分钟前
Docker文件操作、数据卷、挂载
运维·docker·容器
IT成长日记18 分钟前
【Docker基础】Docker数据卷管理:docker volume prune及其参数详解
运维·docker·容器·volume·prune
这儿有一堆花23 分钟前
Docker编译环境搭建与开发实战指南
运维·docker·容器
LuckyLay24 分钟前
Compose 高级用法详解——AI教你学Docker
运维·docker·容器
Uluoyu32 分钟前
redisSearch docker安装
运维·redis·docker·容器
IT成长日记5 小时前
【Docker基础】Docker数据持久化与卷(Volume)介绍
运维·docker·容器·数据持久化·volume·
热爱生活的猴子5 小时前
阿里云服务器正确配置 Docker 国内镜像的方法
服务器·阿里云·docker
FrankYoou9 小时前
Jenkins 与 GitLab CI/CD 的核心对比
java·docker
隆里卡那唔9 小时前
在dify中通过http请求neo4j时为什么需要将localhost变为host.docker.internal
http·docker·neo4j