文章目錄
- 前言
- 1. 安裝Docker
- 2. 使用Docker拉取MongoDB鏡像
- 3. 創建并啟動MongoDB容器
- 4. 本地連接測試
- 5. 公網遠程訪問本地MongoDB容器
- 5.1 內網穿透工具安裝
- 5.2 創建遠程連接公網地址
- 5.3 使用固定TCP地址遠程訪問
正文開始前給大家推薦個網站,前些天發現了一個巨牛的 人工智能學習網站, 通俗易懂,風趣幽默,忍不住分享一下給大家。 點擊跳轉到網站。
前言
本文主要介紹如何在Linux Ubuntu系統使用Docker快速部署MongoDB,并結合cpolar內網穿透工具實現公網遠程訪問本地數據庫。
MongoDB服務端可以運行在Linux、Windows、MacOS平臺,可以存儲比較復雜的數據類型,支持的查詢語言非常強大,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,還可以對數據建立索引。
直接實用包管理器安裝MongoDB比較復雜,使用Docker安裝部署MongoDB則相對簡單快速,下面就和大家分享一下具體操作流程。
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
然后執行查看鏡像命令:
sudo docker images
可以看到成功拉取了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
參數說明:
- –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
可以看到剛才創建的MongoDB容器正在運行中。
4. 本地連接測試
OK,經過以上過程,docker部署 mongodb 就完成了,現在我們可以通過Navicat進行連接測試。
我使用的 Navicat 的版本是 16,如下圖新建 mongodb 的連接:
主機填寫宿主機ip,大家可以在終端中輸入 ip addr
命令進行查看。
端口填寫:27017
驗證填寫:admin
用戶名和密碼填寫剛才啟動容器時設置的賬號密碼:root和password
然后點擊測試連接,可以看到連接成功!
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 管理界面配置即可。
5.2 創建遠程連接公網地址
登錄cpolar web UI管理界面后,點擊左側儀表盤的隧道管理——創建隧道:
- 隧道名稱:可自定義,注意不要與已有的隧道名稱重復,本例使用了:mongo1
- 協議:tcp
- 本地地址:27017
- 域名類型:隨機域名
- 地區:選擇China VIP
點擊創建
然后打開在線隧道列表,查看并且復制tcp協議的公網地址,注意tcp://無需復制
打開navicat或者其他連接工具,主機選項輸入上面我們cpolar中創建的公網地址,端口號對應地址冒號后面生成的公網端口號。
然后點擊測試連接,可以看到連接成功!
小結
為了方便演示,我們在上邊的操作過程中使用了cpolar生成的TCP公網地址隧道,其公網地址是隨機生成的。
這種隨機地址的優勢在于建立速度快,可以立即使用。然而,它的缺點是網址是隨機生成,這個地址在24小時內會發生隨機變化,更適合于臨時使用。
如果有長期遠程訪問本地MongoDB服務的需求,但又不想每天重新配置公網地址,還想地址好看又好記,那我推薦大家選擇使用固定的TCP地址來遠程訪問。
5.3 使用固定TCP地址遠程訪問
登錄cpolar官網后臺,點擊左側的預留,找到保留的tcp地址,我們來為遠程連接MongoDB數據庫保留一個固定tcp地址。
- 地區:選擇China vip
- 描述:即備注,可自定義
點擊保留
地址保留成功后,系統會生成相應的固定公網地址,將其復制下來
本例中地址為:6.tcp.vip.cpolar.cn:13644
然后在瀏覽器上訪問Linux局域網ip地址+:9200端口
,登錄cpolar web ui管理界面。
點擊左側儀表盤的隧道管理——隧道列表,找到我們上面創建的遠程數據庫隧道,點擊右側的編輯
修改隧道信息,將保留成功的固定tcp地址配置到隧道中
- 端口類型:修改為固定tcp端口
- 預留的tcp地址:填寫官網保留成功的地址,
點擊更新
隧道更新成功后,點擊左側儀表盤的狀態——在線隧道列表,可以看到公網地址已經更新成為了固定tcp地址。
打開連接工具,輸入官網保留的固定tcp地址,端口為地址后面對應的公網端口號,點擊測試連接。
出現連接成功表示成功,現在這個公網地址不會再隨機變化,只要保持隧道正常在線,我們在外就可以通過這個公網地址遠程連接到局域網內的MongoDB數據庫。
以上就是如何在Ubuntu系統使用Docker部署MongoDB容器,并結合cpolar內網穿透工具實現公網遠程訪問內網本地服務的全部流程,感謝您的觀看。