MongoDB數據存儲界的瑞士軍刀:cpolar內網穿透實驗室第513號挑戰

在這里插入圖片描述

軟件名稱:MongoDB
操作系統支持:Linux、Windows、macOS(Docker版全平臺通用!)
軟件介紹:

MongoDB是一個基于分布式架構的NoSQL數據庫,擅長處理復雜數據類型(如嵌套對象、數組),查詢語言強大到能實現類似關系型數據庫的單表操作。用它就像在玩“動態表格”,可以靈活存儲JSON格式的數據,且支持索引加速檢索——比Excel聰明100倍!

在這里插入圖片描述

MongoDB誰在用?

  • 開發者:需要快速搭建靈活數據模型的Web應用或API。
  • 數據分析團隊:處理半結構化/非結構化數據(如日志、實時監控)。
  • 學生黨:想“玩轉”NoSQL但被傳統安裝流程勸退的人。
為什么用?
MongoDB × Docker = “數據管理界的隨身瑞士軍刀”**

在這里插入圖片描述

核心功能亮點:
  • 靈活的數據模型:告別僵化的表結構,直接存JSON對象(如用戶信息+訂單詳情嵌套)。
  • 強大的查詢語言:支持類似SQL的聚合操作、條件篩選、分組統計。
  • 索引自由度拉滿:不只是主鍵索引,還能給數組字段、地理位置甚至表達式建索引!

MongoDB的爽點

  • 用嵌套文檔存儲商品信息,配合復合索引(如{"color": 1, "size": 1}),秒級返回所有符合“紅色L碼”的庫存。
  • 用時間戳索引快速篩選最近5分鐘的數據,并通過聚合管道統計平均溫度、異常波動——比Excel函數快100倍!

在這里插入圖片描述

為什么需要cpolar?

cpolar內網穿透——讓數據庫“上天入地”自由訪問

  • 開發測試時,本地MongoDB默認只監聽localhost,外網無法直接連接。
  • 團隊協作時,想遠程調試數據卻苦于公司防火墻限制?
cpolar將內網穿透簡單到只要三步!

1.下載安裝 → 2. 輸入要穿透的端口號 → 3. 立刻獲得專屬訪問鏈接。

MongoDB + Docker + Cpolar = 開發者的“三件套神器”

  • 為什么這套組合能打?
    • Docker:安裝像搭積木,環境零沖突。
    • MongoDB:數據存儲靈活,查詢能力逆天。
    • Cpolar:打破局域網枷鎖,全球隨時訪問!
  • 一句話總結:“用Docker玩轉部署,靠MongoDB征服數據,拿cpolar解鎖自由——這才是現代開發的快樂三角!”

在這里插入圖片描述

現代開發得快樂三角介紹完了,當然還有告訴各位如何安裝嘍。要不然不久成了光說不練得假把式!
教程新鮮出爐,看下面👇

1. 安裝Docker

本教程操作環境為Linux Ubuntu系統,在開始之前,我們需要先安裝Docker。

在終端中執行下方命令:

添加Docker源

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg# Add the repository to Apt sources:
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安裝Dokcer包

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

通過運行映像來驗證 Docker 引擎安裝是否成功

sudo docker run hello-world

2. 使用Docker拉取MongoDB鏡像

sudo docker pull mongo

image-20240221134922055

然后執行查看鏡像命令:

sudo docker images

image-20240221135030232

可以看到成功拉取了MongoDB鏡像。

3. 創建并啟動MongoDB容器

成功拉取MongoDB鏡像后,我們可以使用該鏡像創建并運行一個MongoDB容器。

首先在宿主機上創建存儲目錄/docker_mount/mongodb/data,用于持久化MongoDB數據。

您可以使用以下命令進行創建:

sudo mkdir -p /docker_mount/mongodb/data

然后在終端執行以下命令運行容器:

sudo docker run -d -p 27017:27017 --name mongodb -v /docker_mount/mongodb/data:/data/db -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=password mongo

1708500820559

參數說明:

  • –name excalidraw:本例容器名稱為mongodb,大家可以自己起名。
  • **-e MONGO_INITDB_ROOT_USERNAME=root:**初始化一個root角色的用戶root
  • **-e MONGO_INITDB_ROOT_PASSWORD=password:**密碼是password,大家可以自己設置。
  • -p 27017:27017: 端口進行映射,將本地27017端口映射到容器內部的27017端口。
  • **-d ** :設置容器在在后臺一直運行。

然后執行下方命令查看容器是否正在運行:

sudo docker ps

image-20240221153852667

可以看到剛才創建的MongoDB容器正在運行中。

4. 本地連接測試

OK,經過以上過程,docker部署 mongodb 就完成了,現在我們可以通過Navicat進行連接測試。

我使用的 Navicat 的版本是 16,如下圖新建 mongodb 的連接:

主機填寫宿主機ip,大家可以在終端中輸入 ip addr命令進行查看。

端口填寫:27017

驗證填寫:admin

用戶名和密碼填寫剛才啟動容器時設置的賬號密碼:root和password

image-20240221154325747

然后點擊測試連接,可以看到連接成功!

5. 公網遠程訪問本地MongoDB容器

不過我們目前只能在本地連接剛剛使用docker部署的MongoDB服務,如果身在異地,想要遠程訪問在本地部署的MongoDB容器,但又沒有公網ip怎么辦呢?

我們可以使用cpolar內網穿透工具來實現無公網ip環境下的遠程訪問需求。

5.1 內網穿透工具安裝

下面是安裝cpolar步驟:

cpolar官網地址: https://www.cpolar.com

  • 使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系統添加服務
sudo systemctl enable cpolar
  • 啟動cpolar服務
sudo systemctl start cpolar

cpolar安裝成功后,在外部瀏覽器上訪問Linux 的9200端口即:【http://服務器的局域網ip:9200】,使用cpolar賬號登錄,登錄后即可看到cpolar web 配置界面,結下來在web 管理界面配置即可。

image-20230831171159175

5.2 創建遠程連接公網地址

登錄cpolar web UI管理界面后,點擊左側儀表盤的隧道管理——創建隧道:

  • 隧道名稱:可自定義,注意不要與已有的隧道名稱重復,本例使用了:mongo1
  • 協議:tcp
  • 本地地址:27017
  • 域名類型:隨機域名
  • 地區:選擇China VIP

點擊創建

image-20240221160200575

然后打開在線隧道列表,查看并且復制tcp協議的公網地址,注意tcp://無需復制

image-20240221160228682

打開navicat或者其他連接工具,主機選項輸入上面我們cpolar中創建的公網地址,端口號對應地址冒號后面生成的公網端口號。

image-20240221160051207

然后點擊測試連接,可以看到連接成功!

小結

為了方便演示,我們在上邊的操作過程中使用了cpolar生成的TCP公網地址隧道,其公網地址是隨機生成的。

這種隨機地址的優勢在于建立速度快,可以立即使用。然而,它的缺點是網址是隨機生成,這個地址在24小時內會發生隨機變化,更適合于臨時使用。

如果有長期遠程訪問本地MongoDB服務的需求,但又不想每天重新配置公網地址,還想地址好看又好記,那我推薦大家選擇使用固定的TCP地址來遠程訪問。

5.3 使用固定TCP地址遠程訪問

登錄cpolar官網后臺,點擊左側的預留,找到保留的tcp地址,我們來為遠程連接MongoDB數據庫保留一個固定tcp地址。

  • 地區:選擇China vip
  • 描述:即備注,可自定義

點擊保留

image-20240221160835462

地址保留成功后,系統會生成相應的固定公網地址,將其復制下來

本例中地址為:6.tcp.vip.cpolar.cn:13644

然后在瀏覽器上訪問Linux局域網ip地址+:9200端口,登錄cpolar web ui管理界面。

點擊左側儀表盤的隧道管理——隧道列表,找到我們上面創建的遠程數據庫隧道,點擊右側的編輯

image-20240221161016132

修改隧道信息,將保留成功的固定tcp地址配置到隧道中

  • 端口類型:修改為固定tcp端口
  • 預留的tcp地址:填寫官網保留成功的地址,

點擊更新

image-20240221161130133

隧道更新成功后,點擊左側儀表盤的狀態——在線隧道列表,可以看到公網地址已經更新成為了固定tcp地址。

image-20240221161207657

打開連接工具,輸入官網保留的固定tcp地址,端口為地址后面對應的公網端口號,點擊測試連接。

image-20240221161332281

出現連接成功表示成功,現在這個公網地址不會再隨機變化,只要保持隧道正常在線,我們在外就可以通過這個公網地址遠程連接到局域網內的MongoDB數據庫。

以上就是如何在Ubuntu系統使用Docker部署MongoDB容器,并結合cpolar內網穿透工具實現公網遠程訪問內網本地服務的全部流程,感謝您的觀看。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92238.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92238.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92238.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SPI TFT全彩屏幕驅動開發及調試

簡介SPI(Serial Peripheral Interface)是一種廣泛使用的串行通信協議,常用于微控制器(MCU)與外圍設備(如傳感器、顯示屏、存儲器等)之間的通信。SPI具有全雙工傳輸、主從結構和較高的傳輸速率&a…

Linux學習—數據結構(鏈表2)

1.單向鏈表6.鏈表的查找在鏈表中找到指定的第一個元素沿用遍歷思想,每次訪問一個節點元素判斷是否為要找的節點符合條件返回該節點地址到最后沒有找到符號條件的節NULLlinknode *find_linklist(linknode *phead, datatype tmpdata) {linknode *ptmpnode NULL;ptmpn…

MySQL 備份利器 Xtrabackup 全解析:從部署到恢復的實戰指南

數據庫備份恢復是 DBA 的 “保命” 技能,生產業務不僅要保證有合適的備份策略,也要定期驗證備份的有效性和恢復演練流程,因為數據恢復和驗證可能會涉及多方合作,演練可以讓災難真正發生時,多方配合有條不紊的將數據恢復…

EAGLE-2:通過動態草稿樹加速語言模型推理

溫馨提示: 本篇文章已同步至"AI專題精講" EAGLE-2:通過動態草稿樹加速語言模型推理 摘要 現代 Large Language Models(LLMs)的推理過程既昂貴又耗時,而 speculative sampling 已被證明是一種有效的解決方案…

防水防塵防摔性能很好的智能三防手機,還有22000mAh大電池

在電力巡檢的崇山峻嶺間,在野外地質勘探的風沙深處,在應急救援的急風驟雨里,傳統智能設備因其固有的脆弱性與續航短板往往力不從心,甚至成為保障工作連續性的掣肘。而真正的智能三防手機應是一堵移動的堡壘,集堅不可摧…

Charles中文版抓包工具使用指南 提高API調試和網絡優化效率

在現代開發過程中,調試API、捕獲HTTP/HTTPS流量和優化應用的網絡性能已經成為開發者的常見任務。尤其是在調試復雜的API接口和分析網絡請求時,開發者需要一款高效且功能強大的工具。Charles抓包工具憑借其強大的網絡調試功能和易用的操作界面&#xff0c…

【C#補全計劃:類和對象(九)】接口

一、接口的概念1. 概念:接口是行為的抽象規范,也是一種自定義類型2. 接口聲明規范:(1)不包含成員變量(2)只包含屬性、方法、索引器、事件(3)成員不能被實現(4…

SRS簡介及簡單demo

SRS介紹 SRS(Simple Realtimes Server)是一款開源的實時流媒體服務器,專注于解決直播、實時互動等場景的流媒體傳輸問題。SRS 的設計目標是 “簡單、穩定、高效”,專門針對實時流媒體協議(如 RTMP、HLS、HTTP-FLV、WebRTC 等)進行優化,專注于解決 “低延遲、高并發” 的…

python基礎:數據解析BeatuifulSoup,不需要考慮前端形式的一種獲取元素的方法

1.beatuifulSoup 基本用法 beautifulSoup(簡稱bs4)是python的一個第三方庫,用于解析html和xml文檔中提取數據的python庫。它能夠將復雜的文檔轉化為樹形結構,方便快速定位和提取所需數據以及查找和修改,常常與爬蟲框架…

Ubuntu共享文件夾權限設置

在Ubuntu中設置共享文件夾的權限(只讀、讀寫、無權限),主要通過兩種方式實現:?文件系統權限?和?Samba共享配置?。以下是詳細步驟:?一、文件系統權限設置(基礎權限)?1. ?修改文件夾所有權…

小程序點擊菜單欄實現樣式動態切換

小程序點擊菜單欄背景樣式動態切換 前言:今天做一個小程序項目,要做一個菜單欄動態切換的功能,因為這種需求很常見,這次干脆記錄一下,幫助別人的同時,自己下次也可以直接照搬使用。 效果截圖如下&#xff1…

掌握工程化固件燒錄,開啟你的技術進階之路-FPGA ISE(xilinx)

1、電腦需先行安裝ISE14.7。若已完成安裝,此步驟可略過;若尚未安裝,在后續章節會介紹如何安裝ISE,由于ISE14.7的安裝程序體量龐大,可借助U盤進行傳輸。同時,電腦需預留至少30G的存儲空間以用于安裝該程序。…

Android 之 面試八股文

?1.Activity生命周期????問題??:描述Activity從啟動到銷毀的完整生命周期方法,并說明onSaveInstanceState()的調用時機。??參考答案??:onCreate()→ onStart()→ onResume()(活躍狀態) → onPause()&#x…

暴力解決MySQL連接失敗

本文涉及清空root密碼完全重置MySQL權限徹底卸載并重裝MySQL請務必在測試/本地環境操作,生產環境慎用!場景Spring Boot項目連接MySQL一直報Access denied for user rootlocalhost,改密碼、換驅動都沒用?步驟1:完全重置…

前端開發:CSS(1)—— 什么是CSS?

本文用于記錄前端開發的學習過程。前面我們已經學習了html的編寫,知道了Web開發的一些最基本的知識;在html的學習過程中,我們提到關于樣式的設計和修改常需要使用CSS來實現。那么CSS到底是什么東西呢?它又如何來設計樣式呢&#x…

數據結構(4)—棧和隊列

一、概念1.棧只允許在棧頂位置入棧和出棧元素,鏈表可以在任意位置插入和刪除元素,棧和隊列只允許在指定位置插入和刪除元素2.鏈表、棧和隊列都是一種線性結構(一對一),棧和隊列是一種特殊的表狀結構二、棧1.基礎概念先…

vue2.如何給一個頁面設置動態的name。不同路由使用一樣的組件。頁面不刷新怎么辦?

page里面detail.vue export default { name: detail, } vue2里面.vue的頁面都會設置一個name,這個通常是寫死的。不能在頁面動態設置的。頁面刷新緩存通常都是根據這個name來判斷的。如果name寫死。我幾個頁面都通用這一個頁面的話,他也不刷新頁面啊。 比…

浮動IP(Floating IP)的刪除通常需要滿足什么條件

浮動IP(Floating IP)的刪除通常需要滿足什么條件在云計算或網絡環境中,浮動IP(Floating IP)的刪除通常需要滿足一定的條件,以確保操作不會影響現有業務或導致網絡中斷。以下是常見的可刪除浮動IP的場景和條…

機器學習之隨機森林(Random Forest)實戰案例

一、算法基礎 首先,來介紹一下算法的基礎語法 class sklearn.ensemble.RandomForestClassifier(\ n_estimators’warn’,\ criterion’gini’,\max_depthNone, \ min_samples_split2,\ min_samples_leaf1, \ min_weight_fraction_leaf0.0, \ max_features’auto’…

《C語言》指針練習題--1

《C語言》指針練習題–1 1. 交換兩個整數的值 題目描述: 編寫一個C程序,定義一個函數swap,使用指針參數交換兩個整數的值。在main函數中調用該函數并輸出交換后的結果。 解題思路: 為了交換兩個整數的值,可以通過指針傳…