Docker系列教程02-MongoDB默认开启鉴权
生活随笔
收集整理的這篇文章主要介紹了
Docker系列教程02-MongoDB默认开启鉴权
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
說明,我這里使用的是compose的版本的1.17.0格式是3,但是這和compose版本無關(guān),你只需要添加MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD到你的環(huán)境變量中即可。
#使用官方mongo:3.2的image,compose文件如下,其中當(dāng)你加入環(huán)境變量MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD(缺一不可)后mongodb自動開啟權(quán)限驗證,這在mongo官方鏡像文件的docker-entrypoint.sh腳本中可看到https://github.com/docker-library/mongo/blob/00a8519463e776e797c227681a595986d8f9dbe1/3.0/docker-entrypoint.sh
version: '3' services:mongo:image: mongo:3.2ports:- "27017:27017"volumes:- mongo-data:/data/dbnetworks:- backendenvironment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: root.123 volumes:mongo-data: networks:backend:#創(chuàng)建服務(wù),我這里使用的是swarm集群
docker stack? deploy gionee -c=./docker-compose.yml
#進(jìn)入容器內(nèi)部,mongo容器id自行查看
docker exec -it 7c10b03dcf3a /bin/bash
#執(zhí)行mongo命令
mongo
#首先使用命令show dbs查看是否開啟鑒權(quán),如果看到
2017-11-29T07:46:27.950+0000 E QUERY? ? [thread1] Error: listDatabases failed:{
? ? ? ? "ok" : 0,
? ? ? ? "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
? ? ? ? "code" : 13
}?
說明已經(jīng)開啟鑒權(quán),繼續(xù)往下走。如果沒有看到錯誤提示,說明mongo沒有默認(rèn)開啟鑒權(quán),應(yīng)該檢查你的compose.yml的MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD格式是否正確,yml語法非常嚴(yán)格
#默認(rèn)是進(jìn)入test數(shù)據(jù)庫,需要切換到admin數(shù)據(jù)庫
use admin
#添加admin用戶
db.createUser( {user: "admin",pwd: "123456",roles: [ {"role" : "userAdminAnyDatabase","db" : "admin"},?{"role" : "readWriteAnyDatabase","db" : "admin"},?{"role" : "dbAdminAnyDatabase","db" : "admin"} ] });
#登錄admin用戶
db.auth("admin","123456")
#進(jìn)入你想要添加用戶的數(shù)據(jù)庫,切記要切換你想要操作的數(shù)據(jù)庫,我這里是smartdb
use smartdb
#添加用戶,指定權(quán)限和數(shù)據(jù)庫readWrite表示讀寫權(quán)限
db.createUser({user: "smart",pwd: "123456",roles: [{ role: "readWrite", db: "smartdb" }]})
#驗證用戶否可用,如果返回1說明成功
db.auth("smart","123456")
總結(jié)
以上是生活随笔為你收集整理的Docker系列教程02-MongoDB默认开启鉴权的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker系列教程01-Centos7
- 下一篇: beoplay(BO)耳机拒绝配对的解决