Docker創(chuàng)建MongoDB容器并添加root密碼驗證與更多用戶詳細(xì)步驟
首先下載鏡像文件
sudo docker pull mongo
無密碼驗證創(chuàng)建容器
docker run -itd --name mongo -p 27017:27017 mongo
這時創(chuàng)建的MongoDB是沒有用戶名與密碼的,比如使用python連接mongodb時只需要:
pymongo.MongoClient(host='localhost', port=27017)
需要密碼驗證創(chuàng)建容器
整個流程是:
- 創(chuàng)建需要驗證的容器
- 進(jìn)入容器內(nèi)部,進(jìn)入數(shù)據(jù)庫命令行
- 創(chuàng)建root用戶與密碼
- 登錄root用戶
- 通過root用戶的權(quán)限創(chuàng)建其他用戶
步驟1:創(chuàng)建需要驗證的容器
修改創(chuàng)建容器的方法為:
sudo docker run -itd --name docker-mongo -p 27017:27017 mongo --auth
步驟2:進(jìn)入容器內(nèi)部,進(jìn)入數(shù)據(jù)庫命令行
只需要使用--auth即可創(chuàng)建需要驗證的容器,然后需要進(jìn)入容器內(nèi)部,創(chuàng)建更多用戶:
sudo docker exec -it docker-mongo /bin/bash
進(jìn)入容器后,運(yùn)行:
mongosh
這樣就進(jìn)入了mongodb的命令界面。
步驟3:創(chuàng)建root用戶與密碼
創(chuàng)建超級用戶:
use admin
db.createUser({ user: "root" , pwd: "root_pass", roles: ["root"]})
這樣就創(chuàng)建了root用戶與密碼:
- 用戶名:root
- 密碼:root_pass
- 權(quán)限:root
步驟4:登錄root用戶
db.auth("root","root_pass")
返回 { ok: 1 },證明root用戶創(chuàng)建成功
步驟5:通過root用戶的權(quán)限創(chuàng)建其他用戶
創(chuàng)建對所有數(shù)據(jù)庫有讀寫權(quán)限的用戶:
db.createUser({ user: "dbrw" , pwd: "dbrw_pass", roles: ["readWriteAnyDatabase"]})
這樣就創(chuàng)建了一個新用戶:
- 用戶名:dbrw
- 密碼:dbrw_pass
- 權(quán)限:readWriteAnyDatabase
同樣可以創(chuàng)建自定義的權(quán)限:
db.createUser({
user:"ccc_user",
pwd:"ccc_123456",
roles:[
{role:"readWrite",db:"new_db_1"},
{role:"readWrite",db:"new_db_2"},
'readAnyDatabase'
]
})
通過這種方式創(chuàng)建的用戶,可以得到:
- 用戶名:ccc_user
- 密碼:ccc_123456
- 權(quán)限:
- 讀寫權(quán)限:數(shù)據(jù)庫new_db_1
- 讀寫權(quán)限:數(shù)據(jù)庫new_db_2
- 只讀權(quán)限:除new_db_1、new_db_2外的其他數(shù)據(jù)庫
權(quán)限&名稱請參考
數(shù)據(jù)庫用戶角色
- read: 只讀數(shù)據(jù)權(quán)限
- readWrite:學(xué)些數(shù)據(jù)權(quán)限
數(shù)據(jù)庫管理角色
- dbAdmin: 在當(dāng)前db中執(zhí)行管理操作的權(quán)限
- dbOwner: 在當(dāng)前db中執(zhí)行任意操作
- userADmin: 在當(dāng)前db中管理user的權(quán)限
備份和還原角色
- backup
- restore
跨庫角色
- readAnyDatabase: 在所有數(shù)據(jù)庫上都有讀取數(shù)據(jù)的權(quán)限
- readWriteAnyDatabase: 在所有數(shù)據(jù)庫上都有讀寫數(shù)據(jù)的權(quán)限
- userAdminAnyDatabase: 在所有數(shù)據(jù)庫上都有管理user的權(quán)限
- dbAdminAnyDatabase: 管理所有數(shù)據(jù)庫的權(quán)限
集群管理
- clusterAdmin: 管理機(jī)器的最高權(quán)限
- clusterManager: 管理和監(jiān)控集群的權(quán)限
- clusterMonitor: 監(jiān)控集群的權(quán)限
- hostManager: 管理Server
超級權(quán)限
- root: 超級用戶
總結(jié)
到此這篇關(guān)于Docker創(chuàng)建MongoDB容器并添加root密碼驗證與更多用戶的文章就介紹到這了,更多相關(guān)Docker創(chuàng)建MongoDB容器添加密碼驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker寫一個Dockerfile文件的實現(xiàn)
Dockerfile 是一個用來構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說明,本文主要介紹了docker寫一個Dockerfile文件的實現(xiàn)2024-01-01
Docker Compose快速部署多容器服務(wù)實戰(zhàn)的實例詳解
使用 Docker Compose 可以輕松、高效的管理容器,它是一個用于定義和運(yùn)行多容器 Docker 的應(yīng)用程序工具,本文給大家介紹Docker Compose快速部署多容器服務(wù)實戰(zhàn),感興趣的朋友一起看看吧2022-02-02
Docker-Compose創(chuàng)建mysql容器詳解
這篇文章主要介紹了Docker-Compose創(chuàng)建mysql容器詳解的相關(guān)資料,需要的朋友可以參考下2022-11-11
Docker創(chuàng)建enrollment token錯誤異常解析及解決方案
部署完kibana,需要通過enrollment token方式來連接elasticsearch,此時需要在elasticsearch中創(chuàng)建enrollment token,這篇文章主要介紹了Docker創(chuàng)建enrollment token錯誤異常解析及解決方案,需要的朋友可以參考下2024-04-04
Docker實現(xiàn)導(dǎo)入導(dǎo)出鏡像(Image)文件的代碼示例
在 Docker 中,鏡像(Image)是容器的基礎(chǔ),包含了應(yīng)用程序運(yùn)行所需的所有文件系統(tǒng)和配置,有時,我們需要將 Docker 鏡像導(dǎo)出到文件中,以便在其他地方使用,以下將詳細(xì)介紹如何使用 Docker 導(dǎo)入導(dǎo)出鏡像文件,需要的朋友可以參考下2024-08-08
Spring Boot使用Docker分層打包的設(shè)置方法
Spring Boot 現(xiàn)在支持分層打包技術(shù)了, 我們也來用一用, 加速Docker打包, 構(gòu)建的時候速度也會非???本文重點(diǎn)給大家介紹Spring Boot使用Docker分層打包的設(shè)置方法,感興趣的朋友一起看看吧2021-08-08

