Docker安装Mongo并设置用户名密码


命令

docker run -itd --name mongo --restart=on-failure:10 -p 27017:27017 -v /home/db  mongo --auth

--restart=on-failure:10:为mongo添加重启策略,在非零状态下退出,重试次数设置为10次
-p 27017:27017:映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
--auth:需要密码才能访问容器服务。
-v:映射文件到本地文件夹,这样数据库文件就会在本地存储,即使删除了容器或镜像至少数据库文件还在,数据不会丢失。
-d:表示守护态运行

$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
db.auth('admin', '123456')
# 创建超级用户
db.createUser({ user: "root" , pwd: "root", roles: ["root"]})

基于角色的权限说明

内置角色

数据库用户角色

read: 只读数据权限
readWrite:学些数据权限

数据库管理角色

dbAdmin: 在当前db中执行管理操作的权限
dbOwner: 在当前db中执行任意操作
userADmin: 在当前db中管理user的权限

备份和还原角色

backup
restore

跨库角色

readAnyDatabase: 在所有数据库上都有读取数据的权限
readWriteAnyDatabase: 在所有数据库上都有读写数据的权限
userAdminAnyDatabase: 在所有数据库上都有管理user的权限
dbAdminAnyDatabase: 管理所有数据库的权限

集群管理

clusterAdmin: 管理机器的最高权限
clusterManager: 管理和监控集群的权限
clusterMonitor: 监控集群的权限
hostManager: 管理Server

超级权限

root: 超级用户

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM