MongoDB是常用的NOSQL數(shù)據(jù)庫之一澎迎,本文介紹MongoDB在Docker中的安裝和配置。主要步驟如下:
- 拉取 MongoDB 鏡像
- 創(chuàng)建 MongoDB 容器并配置目錄掛載
- 進(jìn)入MongoDB容器衅檀,創(chuàng)建用戶
- MongoDB數(shù)據(jù)遷移
- Docker 中常用 MongoDB命令
拉取 MongoDB 鏡像
拉取官方最新MongoDB鏡像
docker pull mongo
創(chuàng)建 MongoDB 容器和數(shù)據(jù)目錄掛載
docker run -d -p 27017:27017 -v /mnt/mongo/config:/data/configdb -v /mnt/mongo/data:/data/db --name mint_mongo mongo --auth
此時通過Robo連接MongoDB數(shù)據(jù)庫招刨,發(fā)現(xiàn)連接錯誤,因為上面通過--auth
開啟了身份認(rèn)證哀军,但并未創(chuàng)建用戶沉眶。
進(jìn)入MongoDB容器,創(chuàng)建用戶
輸入命令進(jìn)入容器內(nèi)部杉适。
docker exec -it mint_mongo mongo admin
在mongo命令行輸入命令創(chuàng)建超級管理員賬戶(也可以創(chuàng)建其它內(nèi)建角色的用戶)谎倔。
db.createUser({ user: 'root', pwd: 'mintstudio', roles: [ { role: "root", db: "admin" } ] });
通過執(zhí)行下面的命令可以驗證是否授權(quán)成功,成功返回1猿推。
db.auth('root','mintstudio')
執(zhí)行成功后使用Robo可以成功連接到MongoDB片习。
角色說明:
Read:允許用戶讀取指定數(shù)據(jù)庫
readWrite:允許用戶讀寫指定數(shù)據(jù)庫
dbAdmin:允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除藕咏,查看統(tǒng)計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入状知,可以找指定數(shù)據(jù)庫里創(chuàng)建、刪除和管理用戶
clusterAdmin:只在admin數(shù)據(jù)庫中可用侈离,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限试幽。
readAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀權(quán)限
readWriteAnyDatabase:只在admin數(shù)據(jù)庫中可用卦碾,賦予用戶所有數(shù)據(jù)庫的讀寫權(quán)限
userAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用铺坞,賦予用戶所有數(shù)據(jù)庫的userAdmin權(quán)限
dbAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的dbAdmin權(quán)限洲胖。
root:只在admin數(shù)據(jù)庫中可用济榨。超級賬號,超級權(quán)限
到此绿映,MongoDB在Docker中的簡單部署就完成了擒滑,如有不完善之處,可在文章下留言叉弦,我會不定期更新丐一。