Docker 安装 MongoDB开启认证,创建只读用户权限。

创建带认证的mongdb容器

docker run -itd --name mongo -p 27017:27017 mongo --auth

--auth 就是开启mongodb权限认证。如果不加 --auth 则是无权限认证,连接成功后任何用户都可以对数据库进行读写操作。

进入容器并创建用户

docker run -itd --name mongo -p 27017:27017 mongo --auth

docker exec -it mongo mongo admin

db.createUser({ user:'admin',pwd:'123456',roles: { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"});

db.auth('admin','123456')

use ylgroup

db.createUser({ user:'root',pwd:'123456',roles: { role:'readWrite', db: 'ylgroup'}});

db.auth('root','123456')

db.test.save({name:"zhangsan"});

这样就是需要用户认证来区分用户权限。

忘记开启开启权限认证怎么处理

我这里启动了一个没有开启权限的mongo容器。

之前安装MongoDB忘记开启权限了,我在官方文档里找到了两种办法:

1.--auth 不多赘诉,启动时携带它既开启认证。

2.security.authorization 配置文件中我并没有在docker mongo容器中找到完全锲合的下面文档提及的配置文件

我找到一个类似的配置文件------mongod.conf.orig,并且添加了如下配置,

重启容器后创建用户看看会不会生效。

从上图可以看到没有启动时(--auth)开启认证,mongo容器中修改配置是没法生效的,也可能是我没有改对,但是我查了很久都没有类似的文章,如果您有好的解决办法,望告知。

于是只能最原始的办法,那就是先把容器内数据库等相关文件映射到外部,删除容器,重新创建一个开启认证的mongo并把刚刚挂载到外部的目录再放置到容器内部。

对已经启动的容器添加目录映射

window 下查看容器保存位置:\\wsl$\docker-desktop-data\data\docker\containers

linux 下查看容器保存位置:docker inspect container_name | grep Mounts -A 20

找到容器目录,linux请看:Docker学习笔记四:Docker给已经启动的容器添加目录映射、端口映射 - 零下一度的微笑 - 博客园 (cnblogs.com)

docker对已经启动的容器添加目录映射(挂载目录)_docker 目录映射_alwaysonline819的博客-CSDN博客

window请看:windows10下docker:给已存在的容器添加端口映射、目录映射的方法_windows docker 映射目录_贺群的博客-CSDN博客

我尝试了这俩种办法,可能是我没有修改对,容器至此无法再启动了。

对于忘记开启开启权限认证怎么处理,后续怎么处理,大家有什么好的办法,望告知

相关推荐
“码”力全开13 小时前
打破芯片与协议壁垒:基于 Docker + 边缘计算的 GB28181/RTSP 视频智能管理平台架构设计与源码交付方案
docker·音视频·边缘计算
Albert Edison16 小时前
【Docker】Ubuntu22.04 安装 Docker 教程
运维·docker·容器
AI服务老曹16 小时前
基于Docker的低代码AI视频管理平台架构解析:打通GB28181/RTSP多协议,支持异构边缘计算与全源码交付
人工智能·低代码·docker
codefan※16 小时前
一键部署私人 LLM:Ollama + Docker 极简指南
运维·docker·容器·大模型·llm·本地部署·ollama
IT策士19 小时前
Docker 网络进阶:容器间通信与 DNS 解析
网络·docker·容器
热爱Liunx的丘丘人20 小时前
Docker Compose 实现 Nginx 与 MySQL 多容器服务编排
mysql·nginx·docker
热爱Liunx的丘丘人20 小时前
Docker
运维·docker·容器
sszdzq21 小时前
docker 安装 rocketmq + dashboard
docker·容器·rocketmq
ai产品老杨21 小时前
深度解析:基于 Docker 与异构计算的下一代 AI 视频管理平台架构(附 GB28181/RTSP 统一接入与源码交付方案)
人工智能·docker·音视频
ruanyongjing1 天前
元数据驱动开发 - 面向对象编程思想的补充 (十二)
nginx·macos·docker