欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MongoDB從入門到實(shí)戰(zhàn)之Docker快速安裝MongoDB的詳細(xì)過程

 更新時(shí)間:2025年05月23日 10:55:26   作者:追逐時(shí)光者  
這篇文章主要介紹了MongoDB從入門到實(shí)戰(zhàn)之Docker快速安裝MongoDB的詳細(xì)過程,本文給大家分享詳細(xì)實(shí)戰(zhàn)教程,幫助大家快速把MongoDB環(huán)境搭建起來,感興趣的朋友一起看看吧

前言

在上一篇文章中帶領(lǐng)帶同學(xué)們快速入門MongoDB這個(gè)文檔型的NoSQL數(shù)據(jù)庫,讓大家快速的了解了MongoDB的基本概念。這一章開始我們就開始實(shí)戰(zhàn)篇教程,為了快速把MongoDB使用起來我將會(huì)把MongoDB在Docker容器中安裝起來作為開發(fā)環(huán)境使用。然后我這邊MongoDB的可視化工具用的是Navicate。廢話不多說,我們先花了幾分鐘開始的把MongoDB環(huán)境搭建起來。

查看可用的MongoDB版本

  • 訪問DokcerHub中的MongoDB鏡像庫地址:https://hub.docker.com/_/mongo/tags
  • 可以通過 Sort by 查看其他版本的MongoDB,查看最新版本MongoDB鏡像(mongo:latest):https://hub.docker.com/_/mongo/tags?page=1&name=latest

此外,我們還可以用docker search mongo命令來查看可用版本:

拉取最新版本的MongoDB鏡像

注意假如你鏡像拉取超時(shí)可以看看這里(多平臺(tái)容器鏡像代理服務(wù)):https://dockerproxy.github.io/#/index

docker pull mongo:latest

注意:tag是可選的,tag表示標(biāo)簽,多為軟件的版本,默認(rèn)是latest版本(最新版)

https://hub.docker.com/_/mongo/tags?page=1&name=latest

驗(yàn)證MongoDB鏡像是否成功拉取到本地

使用以下命令來查看MongoDB鏡像是否成功拉取到本地:

docker images

創(chuàng)建并運(yùn)行一個(gè)MongoDB容器

docker run -itd --name mongo-test -p 27017:27017 mongo --auth

參數(shù)說明:

  • -itd:其中,i是交互式操作,t是一個(gè)終端,d指的是在后臺(tái)運(yùn)行。
  • --name mongo-test:容器名稱
  • -p 27017:27017 :映射容器服務(wù)的 27017 端口到宿主機(jī)的 27017 端口。外部可以直接通過 宿主機(jī) ip:27017 訪問到 mongo 的服務(wù)。
  • --auth:需要密碼才能訪問容器服務(wù)(注意:安全問題,MongoDB默認(rèn)是不開啟權(quán)限驗(yàn)證的,不過設(shè)置了這里就相當(dāng)于修改MongoDB的配置auth=ture啟用權(quán)限訪問)。

進(jìn)入創(chuàng)建的MongoDB容器

docker exec -it  mongo-test mongosh

MongoDB報(bào)錯(cuò)"ongoServerError: not authorized on admin to execute command"

MongoDB默認(rèn)是不需要用戶密碼就可以連接的,如果使用命令報(bào)錯(cuò)"ongoServerError: not authorized on admin to execute command ",則表示當(dāng)前登陸用戶不具備相應(yīng)權(quán)限。

解決辦法:在admin數(shù)據(jù)庫中通過創(chuàng)建一個(gè)用戶,賦予用戶root權(quán)限。

# 進(jìn)入admin數(shù)據(jù)庫
use admin
# 創(chuàng)建一個(gè)超級(jí)用戶
db.createUser(
    {
        user:"root",
        pwd:"123456",
        roles:[{role:"root",db:"admin"}]
    }
);#授權(quán)登錄db.auth('root','123456')

MongoDB用戶權(quán)限管理

MongoDB添加用戶命令說明

  • user字段,為新用戶的名字。
  • pwd字段,用戶的密碼。
  • cusomData字段,為任意內(nèi)容,例如可以為用戶全名介紹。
  • roles字段,指定用戶的角色,可以用一個(gè)空數(shù)組給新用戶設(shè)定空角色。在roles字段,可以指定內(nèi)置角色和用戶定義的角色。
  • 超級(jí)用戶的role有兩種,userAdmin或者userAdminAnyDatabase(比前一種多加了對(duì)所有數(shù)據(jù)庫的訪問,僅僅是訪問而已)。
  • db是指定數(shù)據(jù)庫的名字,admin是管理數(shù)據(jù)庫。
  • 不能用admin數(shù)據(jù)庫中的用戶登錄其他數(shù)據(jù)庫。注:只能查看當(dāng)前數(shù)據(jù)庫中的用戶,哪怕當(dāng)前數(shù)據(jù)庫admin數(shù)據(jù)庫,也只能查看admin數(shù)據(jù)庫中創(chuàng)建的用戶。

MongoDB數(shù)據(jù)庫角色說明

  • 數(shù)據(jù)庫用戶角色:read、readWrite。
  • 數(shù)據(jù)庫管理角色:dbAdmin、dbOwner、userAdmin。
  • 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManage。
  • 備份恢復(fù)角色:backup、restore。
  • 所有數(shù)據(jù)庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase。
  • 超級(jí)用戶角色:root。
  • 內(nèi)部角色:__system。

MongoDB中的role詳解

  • Read:允許用戶讀取指定數(shù)據(jù)庫。
  • readWrite:允許用戶讀寫指定數(shù)據(jù)庫。
  • dbAdmin:允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除,查看統(tǒng)計(jì)或訪問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ù)庫中可用。超級(jí)賬號(hào),超級(jí)權(quán)限。

首先切換到admin數(shù)據(jù)庫中

# 進(jìn)入admin數(shù)據(jù)庫
use admin

創(chuàng)建admin超級(jí)管理員用戶

指定用戶的角色和數(shù)據(jù)庫: (注意此時(shí)添加的用戶都只用于admin數(shù)據(jù)庫,而非你存儲(chǔ)業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)庫) (在cmd中敲多行代碼時(shí),直接敲回車換行,最后以分號(hào)首尾)。

db.createUser(  
  { user: "admin",  
    customData:{description:"superuser"},
    pwd: "admin",  
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  
  }  
)

創(chuàng)建一個(gè)不受訪問限制的超級(jí)用戶

擁有所有權(quán)限,不受任何限制。

db.createUser(
    {
        user:"root",
        pwd:"123456",
        roles:[{role:"root",db:"admin"}]
    }
)

創(chuàng)建一個(gè)業(yè)務(wù)數(shù)據(jù)庫管理員用戶

只負(fù)責(zé)某一個(gè)或幾個(gè)數(shù)據(jù)庫的増查改刪。

db.createUser({
    user:"user001",
    pwd:"123456",
    customData:{
        name:'jim',
        email:'jim@qq.com',
        age:18,
    },
    roles:[
        {role:"readWrite",db:"db001"},
        {role:"readWrite",db:"db002"},
        'read'// 對(duì)其他數(shù)據(jù)庫有只讀權(quán)限,對(duì)db001、db002是讀寫權(quán)限
    ]
})

服務(wù)器配置27017的開放端口

Navicat連接mongoDB并創(chuàng)建集合和添加數(shù)據(jù)

1.連接MongoDB點(diǎn)擊這個(gè)位置

2、連接參數(shù)介紹

  • Standalone:?jiǎn)螜C(jī)模式,是MongoDB最基本的部署方式。在這種模式下,MongoDB運(yùn)行在一個(gè)單一的服務(wù)器上,適合用于開發(fā)、測(cè)試或者小型應(yīng)用。由于它不具備高可用性和可擴(kuò)展性,因此不適用于大型生產(chǎn)環(huán)境或需要高可靠性的場(chǎng)景。
  • Shard Cluster:分片集群,是MongoDB提供的一種用于橫向擴(kuò)展存儲(chǔ)和計(jì)算能力的分布式部署模式。通過分片,可以將數(shù)據(jù)集分割成多個(gè)部分,并分布到集群中的不同節(jié)點(diǎn)上。每個(gè)節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)的一個(gè)子集,從而提高了數(shù)據(jù)的訪問效率和系統(tǒng)的可擴(kuò)展性。
  • Replica Set:副本集,是MongoDB提供的一種高可用性和數(shù)據(jù)冗余的部署模式。它由一組MongoDB實(shí)例組成,這些實(shí)例之間通過復(fù)制和故障轉(zhuǎn)移來保持?jǐn)?shù)據(jù)的一致性和可用性。

一般情況下,我們連接只需要連接主庫查數(shù)據(jù),所以選擇單例連接方式即可,填寫好常規(guī)參數(shù)可以點(diǎn)擊測(cè)試連接是否正常,即可連接!

3、新建MongoDB數(shù)據(jù)庫(MyMondoDBTest)

4、新建MongoDB文檔(Books)并添加數(shù)據(jù)

到此這篇關(guān)于MongoDB從入門到實(shí)戰(zhàn)之Docker快速安裝MongoDB的文章就介紹到這了,更多相關(guān)Docker安裝MongoDB內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker容器內(nèi)存限制的方法

    Docker容器內(nèi)存限制的方法

    本篇文章主要介紹了Docker容器內(nèi)存限制的方法,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • 使用Docker compose編排Laravel應(yīng)用的方法

    使用Docker compose編排Laravel應(yīng)用的方法

    本篇文章主要介紹了使用Docker compose編排Laravel應(yīng)用的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解Docker容器數(shù)據(jù)卷

    詳解Docker容器數(shù)據(jù)卷

    這篇文章主要介紹了Docker容器數(shù)據(jù)卷的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Docker如何拉取oracle11g鏡像

    Docker如何拉取oracle11g鏡像

    這篇文章主要介紹了Docker如何拉取oracle11g鏡像問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Docker搭建Gogs的實(shí)現(xiàn)步驟

    Docker搭建Gogs的實(shí)現(xiàn)步驟

    本文主要介紹了Docker搭建Gogs的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • 使用docker+devpi搭建本地pypi源的方法

    使用docker+devpi搭建本地pypi源的方法

    這篇文章主要介紹了使用docker+devpi搭建本地pypi源的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-04-04
  • 利用Docker制作Nginx+PHP鏡像的步驟詳解

    利用Docker制作Nginx+PHP鏡像的步驟詳解

    Nginx是一個(gè)高性能的Web和反向代理服務(wù)器,它具有很多非常優(yōu)越的特性,那么這篇文章小編就分步驟向大家介紹如何利用Docker制作Nginx+PHP的鏡像,文章介紹的很詳細(xì),對(duì)大家具有一定的參考借鑒價(jià)值,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • Docker管理之碎片知識(shí)整理小結(jié)

    Docker管理之碎片知識(shí)整理小結(jié)

    本文旨在匯總整理Docker日常管理之知識(shí)碎片,以便日后回顧查看參考。文中通過示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下
    2021-11-11
  • Docker快速部署SpringBoot項(xiàng)目介紹

    Docker快速部署SpringBoot項(xiàng)目介紹

    大家好,本篇文章主要講的是Docker快速部署SpringBoot項(xiàng)目介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下哦,方便下次瀏覽
    2021-12-12
  • docker volume刪除卷的操作

    docker volume刪除卷的操作

    這篇文章主要介紹了docker volume刪除卷的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評(píng)論