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

Docker安裝MongoDB的過程(mongo.latest)

 更新時(shí)間:2024年11月08日 09:32:16   作者:寰夢(mèng)  
MongoDB是一種高性能、靈活的數(shù)據(jù)庫,特別適合處理大量非結(jié)構(gòu)化數(shù)據(jù),它采用文檔數(shù)據(jù)模型,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),提供類似面向?qū)ο蟮牟樵冋Z言,本文給大家介紹Docker安裝MongoDB的過程(mongo.latest),感興趣的朋友一起看看吧

一、MongoDB介紹

MongoDB是一種基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,使用C++語言開發(fā),旨在為Web應(yīng)用提供可擴(kuò)展且高性能的數(shù)據(jù)存儲(chǔ)解決方案。作為一種介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的技術(shù),MongoDB具有強(qiáng)大的功能和高效的性能,特別適用于處理海量的非結(jié)構(gòu)化數(shù)據(jù)。

MongoDB的核心概念與特性:

  • 數(shù)據(jù)模型:MongoDB采用文檔數(shù)據(jù)模型,數(shù)據(jù)以類似JSON的BSON格式存儲(chǔ),支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如內(nèi)嵌文檔和數(shù)組,具有高度的靈活性。
  • 查詢語言:MongoDB提供類似面向?qū)ο蟮牟樵冋Z言,支持動(dòng)態(tài)查詢,能夠?qū)崿F(xiàn)大多數(shù)關(guān)系型數(shù)據(jù)庫的單表查詢功能,同時(shí)支持?jǐn)?shù)據(jù)索引以提高查詢性能。
  • 分布式存儲(chǔ):MongoDB支持水平擴(kuò)展,可將數(shù)據(jù)分布到多個(gè)服務(wù)器上,保證高可用性和出色的性能。
  • 高可用性與容災(zāi):MongoDB通過復(fù)制集和分片機(jī)制,確保系統(tǒng)具備高可用性和容災(zāi)能力,從而提升了系統(tǒng)的可擴(kuò)展性。

MongoDB的發(fā)展歷程與最新進(jìn)展:

MongoDB由10gen(現(xiàn)為MongoDB Inc.)于2007年開始開發(fā),最初目標(biāo)是構(gòu)建一個(gè)云平臺(tái)即服務(wù)(PaaS)。2009年,MongoDB作為開源項(xiàng)目正式發(fā)布。自那時(shí)以來,MongoDB經(jīng)歷了快速發(fā)展,新增了如復(fù)制集、分片等關(guān)鍵特性,顯著提升了可擴(kuò)展性和高可用性。最近的技術(shù)創(chuàng)新包括優(yōu)化有線協(xié)議和引入新的存儲(chǔ)引擎,進(jìn)一步增強(qiáng)了事務(wù)支持功能。

MongoDB的應(yīng)用場(chǎng)景與行業(yè)應(yīng)用:

MongoDB非常適合需要快速迭代和支持多樣化數(shù)據(jù)格式的應(yīng)用場(chǎng)景。憑借其靈活的數(shù)據(jù)庫模型和出色的性能,MongoDB已被廣泛應(yīng)用于各類企業(yè),滿足從初創(chuàng)公司到大型企業(yè)的不同數(shù)據(jù)管理需求。尤其在處理海量非結(jié)構(gòu)化數(shù)據(jù)的場(chǎng)景中,MongoDB表現(xiàn)出色,成為許多行業(yè)的首選數(shù)據(jù)庫解決方案。

二、安裝MongoDB

1.拉取MongoDB鏡像

docker pull mongo:latest

2.創(chuàng)建掛載目錄

(1)進(jìn)入文件夾

cd /usr/local/docker

注:不必非得是/usr/local/docker這個(gè)目錄,根據(jù)自己的需求和喜好來就行,可自由選擇

(2)創(chuàng)建文件和賦權(quán) 

# 創(chuàng)建一個(gè)名為 mongodb 的主目錄
mkdir mongodb
# 進(jìn)入 mongodb 目錄,以便后續(xù)操作
cd mongodb
# 創(chuàng)建一個(gè)名為 config 的子目錄,用于存放 MongoDB 配置文件
mkdir config
# 創(chuàng)建一個(gè)名為 data 的子目錄,用于存放 MongoDB 數(shù)據(jù)文件
mkdir data
# 創(chuàng)建一個(gè)名為 logs 的子目錄,用于存放 MongoDB 的日志文件
mkdir logs
# 在 config 目錄下創(chuàng)建一個(gè)名為 mongod.conf 的空文件,這是 MongoDB 的配置文件
touch config/mongod.conf
# 將 /usr/local/docker/mongodb 目錄的權(quán)限設(shè)置為 777,允許任何用戶對(duì)該目錄進(jìn)行讀、寫和執(zhí)行操作
chmod 777 /usr/local/docker/mongodb

(3)編寫配置文件

使用 vi 或 vim 編輯器打開mongod.conf文件

vim mongod.conf

如果使用FinalShell工具,可以直接雙擊文件打開

添加內(nèi)容

# 數(shù)據(jù)庫存儲(chǔ)路徑
dbpath=/usr/local/docker/mongodb/data
# 日志文件路徑
logpath=/usr/local/docker/mongodb/logs/mongod.log
# 監(jiān)聽的端口
port=27017
# 允許所有的 IP 地址連接
bind_ip=0.0.0.0
# 啟用日志記錄
journal=true
# 是否后臺(tái)運(yùn)行
fork=true
# 啟用身份驗(yàn)證
#auth=true

3.啟動(dòng)MongoDB容器

docker run -dit --name mongo \
-p 17017:27017 \
-v /usr/local/docker/mongodb/config/mongod.conf:/etc/mongod.conf \
-v /usr/local/docker/mongodb/data:/data/db \
-v /usr/local/docker/mongodb/logs:/var/log/mongodb \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
--restart=always  \
mongo

解釋:

docker run:

用于創(chuàng)建并啟動(dòng)一個(gè)新的 Docker 容器。

-dit:

-d:讓容器在后臺(tái)運(yùn)行(detached mode),即以守護(hù)進(jìn)程方式運(yùn)行容器。

-i:保持標(biāo)準(zhǔn)輸入流打開,通常與 -t 一起使用。

-t:為容器分配一個(gè)偽終端,便于交互。

--name mongo:

為啟動(dòng)的容器指定一個(gè)名稱,這里容器名為 mongo。

-p 17017:27017:

將主機(jī)的 17017 端口映射到容器的 27017 端口,這樣主機(jī)通過 17017 端口可以訪問到容器內(nèi) MongoDB 服務(wù)的 27017 端口。MongoDB 默認(rèn)的端口是 27017。

-v /usr/local/docker/mongodb/config/mongod.conf:/etc/mongod.conf:

將主機(jī)的配置文件 /usr/local/docker/mongodb/config/mongod.conf 掛載到容器的 /etc/mongod.conf 位置,使容器使用主機(jī)上的配置文件來啟動(dòng) MongoDB 服務(wù)。

-v /usr/local/docker/mongodb/data:/data/db:

將主機(jī)的 /usr/local/docker/mongodb/data 目錄掛載到容器的 /data/db,用作 MongoDB 的數(shù)據(jù)存儲(chǔ)位置。這樣可以確保數(shù)據(jù)在容器重啟時(shí)持久化。

-v /usr/local/docker/mongodb/logs:/var/log/mongodb:

將主機(jī)的 /usr/local/docker/mongodb/logs 目錄掛載到容器的 /var/log/mongodb 位置,用于保存 MongoDB 的日志文件。這樣日志數(shù)據(jù)不會(huì)隨著容器銷毀而丟失。

-e MONGO_INITDB_ROOT_USERNAME=admin:

設(shè)置 MongoDB 初始化時(shí)的 root 用戶名為 admin。此用戶名將在數(shù)據(jù)庫首次啟動(dòng)時(shí)用于身份驗(yàn)證。

-e MONGO_INITDB_ROOT_PASSWORD=123456:

設(shè)置 MongoDB 初始化時(shí)的 root 用戶密碼為 123456。用于數(shù)據(jù)庫身份驗(yàn)證。

--restart=always:

確保容器在停止或崩潰后總是自動(dòng)重啟。如果 Docker 服務(wù)重啟或容器出現(xiàn)故障,容器將會(huì)自動(dòng)重新啟動(dòng)。

mongo:

指定使用 mongo 官方鏡像來啟動(dòng)容器。該鏡像包含了最新的 MongoDB 服務(wù)。

總結(jié):

此命令啟動(dòng)了一個(gè) MongoDB 容器,并通過設(shè)置配置文件、數(shù)據(jù)目錄、日志目錄和初始化的用戶名及密碼,確保 MongoDB 在啟動(dòng)時(shí)以指定配置運(yùn)行,同時(shí)數(shù)據(jù)和日志會(huì)持久化在主機(jī)的指定目錄中。通過端口映射,MongoDB 服務(wù)可以通過主機(jī)的端口訪問,容器的重啟策略則確保了服務(wù)的高可用性。

4.查看是否啟動(dòng)

三、創(chuàng)建用戶數(shù)據(jù)

1.進(jìn)入MongoDB容器

docker exec -it mongo /usr/bin/mongosh

 2.切換到 admin 庫

use admin

3.執(zhí)行數(shù)據(jù)庫登錄操作,否則后面執(zhí)行命令會(huì)提示

MongoServerError[Unauthorized]: Command createUser requires authentication

# 使用創(chuàng)建容器時(shí)的用戶名和密碼
db.auth("admin","123456")

 4.登錄成功后,創(chuàng)建新用戶(用戶名和密碼可以自定義)

db.createUser(
  {
    user: "用戶名稱",           // 新用戶的用戶名
    pwd: "密碼",              // 新用戶的密碼
    roles: [                 // 為該用戶分配的角色權(quán)限
      { 
        role: "root",        // 角色是 "root",這是 MongoDB 中的一個(gè)內(nèi)置角色,擁有數(shù)據(jù)庫的完全管理權(quán)限
        db: "admin"          // 該角色是在 "admin" 數(shù)據(jù)庫上授予的,這意味著該用戶具有對(duì)整個(gè) MongoDB 實(shí)例的管理權(quán)限
      }
    ]
  }
);

示例

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

5.創(chuàng)建完成后,嘗試使用上面創(chuàng)建的新用戶信息進(jìn)行連接

db.auth('testuser','123456')

登錄成功也是顯示如下

四、關(guān)于用戶的常用命令

1.更新用戶角色,修改用戶權(quán)限,不會(huì)覆蓋原權(quán)限信息,只新增權(quán)限

db.updateUser("admin",{roles:[{role:"readWrite",db:"admin"}]})

2.更新用戶密碼

db.changeUserPassword("admin","123456")

3.刪除用戶

db.dropUser({'admin'})

4.查看所有用戶

show users

五、使用Navicat連接MongoDB

1.打開 Navicat 新建數(shù)據(jù)庫連接,選擇MongoDB

2.填寫配置信息

3.填寫完成配置信息后,點(diǎn)擊左下角“測(cè)試連接”按鈕

提示連接成功,此時(shí),在點(diǎn)擊右下角“保存”按鈕,即可保存連接配置,這樣就可以通過Navicat去訪問MongoDB數(shù)據(jù)庫了。

到此這篇關(guān)于Docker安裝MongoDB詳解(mongo.latest)的文章就介紹到這了,更多相關(guān)Docker安裝MongoDB內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker安裝ros2詳細(xì)步驟介紹

    docker安裝ros2詳細(xì)步驟介紹

    大家好,本篇文章主要講的是docker安裝ros2詳細(xì)步驟介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 解決docker安裝后運(yùn)行hello-world報(bào)錯(cuò)的問題

    解決docker安裝后運(yùn)行hello-world報(bào)錯(cuò)的問題

    這篇文章主要介紹了解決docker安裝后運(yùn)行hello-world報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • docker如何打包前端并運(yùn)行完整步驟詳解

    docker如何打包前端并運(yùn)行完整步驟詳解

    這篇文章主要介紹了使用Vue3和Vite1開發(fā)前端項(xiàng)目的過程,包括項(xiàng)目啟動(dòng)、開發(fā)服務(wù)器運(yùn)行、構(gòu)建生產(chǎn)環(huán)境以及使用Docker部署,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • Windows使用docker打開新窗口error解決辦法

    Windows使用docker打開新窗口error解決辦法

    這篇文章主要介紹了Windows使用docker打開新窗口error解決辦法,十分簡(jiǎn)單,需要的朋友可以參考下。
    2017-09-09
  • Docker容器部署Java項(xiàng)目的自動(dòng)化腳本

    Docker容器部署Java項(xiàng)目的自動(dòng)化腳本

    這篇文章主要為大家詳細(xì)介紹了Docker容器中部署Java項(xiàng)目的自動(dòng)化腳本編寫,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • docker安裝mongoDB及使用方法詳解

    docker安裝mongoDB及使用方法詳解

    這篇文章主要給大家介紹了關(guān)于docker安裝mongoDB及使用的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Docker常用命令總結(jié)大全(推薦!)

    Docker常用命令總結(jié)大全(推薦!)

    Dokcer里面有很多命令,全部的可以參考官方Reference文檔,命令太多我們只需要掌握部分命令即可,這篇文章主要給大家介紹了關(guān)于Docker常用命令總結(jié)大全的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • docker 突然不能被外網(wǎng)訪問的解決方案

    docker 突然不能被外網(wǎng)訪問的解決方案

    這篇文章主要介紹了docker 突然不能被外網(wǎng)訪問的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Docker部署用Python編寫的Web應(yīng)用的實(shí)踐

    Docker部署用Python編寫的Web應(yīng)用的實(shí)踐

    本文主要介紹了Docker部署用Python編寫的Web應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 一文帶你了解Docker網(wǎng)絡(luò)模型

    一文帶你了解Docker網(wǎng)絡(luò)模型

    Docker是一種容器化平臺(tái),它提供了一種輕量級(jí)的虛擬化解決方案,使得應(yīng)用程序能夠以容器的形式運(yùn)行,Docker網(wǎng)絡(luò)模型基于Linux內(nèi)核的網(wǎng)絡(luò)命名空間和虛擬以太網(wǎng)橋技術(shù),本文就給大家詳細(xì)介紹一下Docker?網(wǎng)絡(luò)模型,需要的朋友可以參考下
    2023-07-07

最新評(píng)論