1.拉取MongoDB镜像
docker pull mongo
2.配置mongodb
docker run -di --name=mongo -p 27017:27017 mongo
以下可选进行配置(主要添加了登录时需要密码和判断该用户是否拥有对应的角色)
1.进行登录权限控制
a.进入mongodb容器
docker exec -it mongo /bin/bash
b.创建admin用户并且授权root角色admin资源(先以普通用户登录输入mongo即可)
use admin
db.createUser(
{
user:"admin",
pwd:"输入你的密码",
roles:[{role:"root",db:"admin"}]
}
);
c.退出容器
exit;
2.创建普通用户(依旧停留在mongo容器)
a.以admin账号登录mongo
mongo --port 27017 -u admin -p password --authenticationDatabase admin
b.创建一个只能读写的用户
use test
db.createUser(
{
user:"test",
pwd:"123456",
roles:[role:"readWrite",db:"test"]
}
);
如果登录的账号没有该角色及资源将会报以下错误(QUERY [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:341:17)
root@94e34b459cb7:/# mongo -u test -p
MongoDB shell version v4.2.1
Enter password:
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2019-11-26T08:21:51.123+0000 E QUERY [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:341:17
@(connect):2:6
2019-11-26T08:21:51.126+0000 F - [main] exception: connect failed
2019-11-26T08:21:51.126+0000 E - [main] exiting with code 1
root@94e34b459cb7:/#