使用Docker容器部署MongoDB并支持遠(yuǎn)程訪問及遇到的坑
前言
由于使用寶塔面板來配置MongoDB
的BUG太多,實在受不了,今天心血來潮想要使用Docker容器來進(jìn)行部署。本來以為也就二三十分鐘的事情結(jié)果踩坑踩了將近兩個小時,不過萬幸還是成功部署上了
Docker & MongoDB
在開始講之前,我們需要知道Docker
和MongoDB
是什么,雖然這兩個工具已經(jīng)非常流行,但可能還是有讀者不知道其詳細(xì)概念
Docker
Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口。
MongoDB
MongoDB是一個基于分布式文件存儲 [1] 的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。
MongoDB是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點是它支持的查詢語言非常強(qiáng)大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。
使用Docker部署MongoDB
Docker的安裝請參照其他文章
在進(jìn)入我們服務(wù)器的終端后就可以開始操作了,首先我們要拉取最新的mongo
鏡像
$ docker pull mongo:latest
使用docker images
來檢查是否成功拉取鏡像
$ docker images
接下來我們就可以讓鏡像跑起來并跑在27017端口
若跑在其他端口會有坑,后面講
$ docker run -itd --name mongo -p 27017:27017 mongo
我們可以使用docker ps
來驗證是否已經(jīng)跑起來了,下一步我們直接進(jìn)入容器中
$ docker exec -it mongo /bin/bash
接下來我們不慌著直接使用mongo
命令,因為直接使用的話就會踩坑。我們的目的是部署了MongoDB
并能讓其支持遠(yuǎn)程訪問,所以我們需要先去更改它的配置文件,更改配置文件需要使用到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
進(jìn)入到配置我們中將其中的bindIp: 127.0.0.1
注釋掉# bindIp: 127.0.0.1
,或改成0.0.0.0
即可。除此之外,若你MongoDB
部署的端口不是27017,也應(yīng)該進(jìn)行替換(坑點之一,對應(yīng)上文)
在這之后就可以進(jìn)行連接了
開放端口
我們需要開放端口并還需在服務(wù)器添加安全組策略,若兩個中有一個沒開都是訪問不到的
到此這篇關(guān)于使用Docker容器部署MongoDB并支持遠(yuǎn)程訪問及遇到的坑的文章就介紹到這了,更多相關(guān)Docker部署MongoDB內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝node-red、導(dǎo)入節(jié)點、部署查看的步驟詳解
Node-RED設(shè)計使用的場景是IoT,但是作為一個流編排引擎,顯然它能做的事情更多,比如使用容器化的方式進(jìn)行構(gòu)建、打包、部署等操作也是可行的,這篇文章繼續(xù)介紹Docker安裝node-red、導(dǎo)入節(jié)點、部署查看的相關(guān)知識,感興趣的朋友一起看看吧2022-01-01docker容器設(shè)置時區(qū)的幾種方式小結(jié)
Docker的基礎(chǔ)鏡像設(shè)置大多是Etc/UTC,也就是標(biāo)準(zhǔn)的UTC 時間,所以要簡單的調(diào)整一下,本文主要介紹了docker容器設(shè)置時區(qū)的幾種方式小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-05-05修改docker容器端口映射到主機(jī)的方法實現(xiàn)
Docker容器的端口映射是通過docker run命令來啟動容器,并指定端口映射參數(shù),本文主要介紹了修改docker容器端口映射到主機(jī)的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-09-09Docker中Harbor企業(yè)級鏡像倉庫的搭建與使用
本文介紹了Harbor企業(yè)級鏡像倉庫的搭建與使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12