命令
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: 超級用戶