使用Docker容器部署MongoDB并支持遠(yuǎn)程訪(fǎng)問(wèn)及遇到的坑
前言
由于使用寶塔面板來(lái)配置MongoDB的BUG太多,實(shí)在受不了,今天心血來(lái)潮想要使用Docker容器來(lái)進(jìn)行部署。本來(lái)以為也就二三十分鐘的事情結(jié)果踩坑踩了將近兩個(gè)小時(shí),不過(guò)萬(wàn)幸還是成功部署上了
Docker & MongoDB
在開(kāi)始講之前,我們需要知道Docker和MongoDB是什么,雖然這兩個(gè)工具已經(jīng)非常流行,但可能還是有讀者不知道其詳細(xì)概念
Docker
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
MongoDB
MongoDB是一個(gè)基于分布式文件存儲(chǔ) [1] 的數(shù)據(jù)庫(kù)。由C++語(yǔ)言編寫(xiě)。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類(lèi)似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類(lèi)型。Mongo最大的特點(diǎn)是它支持的查詢(xún)語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類(lèi)似于面向?qū)ο蟮牟樵?xún)語(yǔ)言,幾乎可以實(shí)現(xiàn)類(lèi)似關(guān)系數(shù)據(jù)庫(kù)單表查詢(xún)的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。
使用Docker部署MongoDB
Docker的安裝請(qǐng)參照其他文章
在進(jìn)入我們服務(wù)器的終端后就可以開(kāi)始操作了,首先我們要拉取最新的mongo鏡像
$ docker pull mongo:latest
使用docker images來(lái)檢查是否成功拉取鏡像
$ docker images
接下來(lái)我們就可以讓鏡像跑起來(lái)并跑在27017端口
若跑在其他端口會(huì)有坑,后面講
$ docker run -itd --name mongo -p 27017:27017 mongo
我們可以使用docker ps來(lái)驗(yàn)證是否已經(jīng)跑起來(lái)了,下一步我們直接進(jìn)入容器中
$ docker exec -it mongo /bin/bash
接下來(lái)我們不慌著直接使用mongo命令,因?yàn)橹苯邮褂玫脑?huà)就會(huì)踩坑。我們的目的是部署了MongoDB并能讓其支持遠(yuǎn)程訪(fǎng)問(wèn),所以我們需要先去更改它的配置文件,更改配置文件需要使用到vim,所以我們還需要下載vim,但我們知道,直接下載的話(huà)非常緩慢,所以我們還得給容器換一個(gè)源
容器中換源
正則替換成阿里的鏡像可以快速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
更改配置
接下來(lái)就可以下載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)行替換(坑點(diǎn)之一,對(duì)應(yīng)上文)
在這之后就可以進(jìn)行連接了
開(kāi)放端口
我們需要開(kāi)放端口并還需在服務(wù)器添加安全組策略,若兩個(gè)中有一個(gè)沒(méi)開(kāi)都是訪(fǎng)問(wèn)不到的
到此這篇關(guān)于使用Docker容器部署MongoDB并支持遠(yuǎn)程訪(fǎng)問(wèn)及遇到的坑的文章就介紹到這了,更多相關(guān)Docker部署MongoDB內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ubuntu如何查看docker容器占用的磁盤(pán)空間
這篇文章主要介紹了ubuntu如何查看docker容器占用的磁盤(pán)空間問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Docker私有倉(cāng)庫(kù)打開(kāi)2375端口的實(shí)現(xiàn)
本文主要介紹了Docker私有倉(cāng)庫(kù)打開(kāi)2375端口的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
docker prune命令定時(shí)清理不常用數(shù)據(jù)的操作方法
使用docker引擎服務(wù)時(shí)間久了,會(huì)發(fā)現(xiàn)磁盤(pán)空間越來(lái)越大,現(xiàn)在要?jiǎng)h除關(guān)于docker相關(guān)不用的數(shù)據(jù)來(lái)釋放磁盤(pán)空間,這篇文章主要介紹了docker prune命令 可定時(shí)清理不常用數(shù)據(jù),需要的朋友可以參考下2022-10-10
詳解docker pull下來(lái)的鏡像存儲(chǔ)在哪里
這篇文章主要介紹了詳解docker pull下來(lái)的鏡像存儲(chǔ)在哪里,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
DockerCE之執(zhí)行docker info出現(xiàn)兩條警告信息及解決方案
這篇文章主要介紹了DockerCE之執(zhí)行docker info出現(xiàn)兩條警告信息及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02

