日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

使用Docker容器部署MongoDB并支持遠程訪問及遇到的坑_docker

作者:L2ncE ? 更新時間: 2022-09-04 編程語言

前言

由于使用寶塔面板來配置MongoDB的BUG太多,實在受不了,今天心血來潮想要使用Docker容器來進行部署。本來以為也就二三十分鐘的事情結果踩坑踩了將近兩個小時,不過萬幸還是成功部署上了

Docker & MongoDB

在開始講之前,我們需要知道DockerMongoDB是什么,雖然這兩個工具已經非常流行,但可能還是有讀者不知道其詳細概念

Docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的?Linux或Windows操作系統的機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

MongoDB

MongoDB是一個基于分布式文件存儲?[1]??的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。它支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。

使用Docker部署MongoDB

Docker的安裝請參照其他文章

在進入我們服務器的終端后就可以開始操作了,首先我們要拉取最新的mongo鏡像

$ docker pull mongo:latest

使用docker images來檢查是否成功拉取鏡像

$ docker images

接下來我們就可以讓鏡像跑起來并跑在27017端口

若跑在其他端口會有坑,后面講

$ docker run -itd --name mongo -p 27017:27017 mongo

我們可以使用docker ps來驗證是否已經跑起來了,下一步我們直接進入容器中

$ docker exec -it mongo /bin/bash

接下來我們不慌著直接使用mongo命令,因為直接使用的話就會踩坑。我們的目的是部署了MongoDB并能讓其支持遠程訪問,所以我們需要先去更改它的配置文件,更改配置文件需要使用到vim,所以我們還需要下載vim,但我們知道,直接下載的話非常緩慢,所以我們還得給容器換一個源

容器中換源

正則替換成阿里的鏡像可以快速update

$ sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
$ sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
$ apt clean
$ apt-get update -y

更改配置

接下來就可以下載vim并更改配置了

$ apt-get install vim
$ vim /etc/mongod.conf.orig

進入到配置我們中將其中的bindIp: 127.0.0.1注釋掉# bindIp: 127.0.0.1,或改成0.0.0.0即可。除此之外,若你MongoDB部署的端口不是27017,也應該進行替換(坑點之一,對應上文)

在這之后就可以進行連接了

開放端口

我們需要開放端口并還需在服務器添加安全組策略,若兩個中有一個沒開都是訪問不到的

原文鏈接:https://juejin.cn/post/7119064600187764772

欄目分類
最近更新