Docker版MongoDB的安裝

一. 什么是MongoDB

MongoDB是現(xiàn)在主流的分布式文檔數(shù)據(jù)庫(kù)爵政。一些字段不固定的數(shù)據(jù),使用傳統(tǒng)數(shù)據(jù)庫(kù)就不太好處理陶缺,要么要建很多表互相關(guān)聯(lián)钾挟,要么要建很多冗余字段。而MongoDB簡(jiǎn)直就是為此而生的饱岸。

MongoDB 將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔掺出,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成。MongoDB 文檔類似于 JSON 對(duì)象苫费。字段值可以包含其他文檔汤锨,數(shù)組及文檔數(shù)組。

典型的MongoDB數(shù)據(jù)

二. 為什么用docker版的MongoDB

你可以在MongoDB的官方文檔里找到常規(guī)的安裝方式百框。本文主要面向懵懂的初學(xué)者闲礼,一切簡(jiǎn)單為主。這里給大家介紹下最簡(jiǎn)單的安裝方式,直接使用官方提供的docker鏡像柬泽。

三. 準(zhǔn)備工作

要使用docker鏡像慎菲,首先你得先安裝docker。對(duì)docker不熟悉的朋友可以參考我之前寫的一篇docker安裝和簡(jiǎn)單使用的教程聂抢。

四. 尋找官方鏡像

要找docker鏡像钧嘶,最常規(guī)的方式是直接到Docker Hub上來(lái)找。訪問(wèn)Docker Hub的網(wǎng)站琳疏,在左上角的搜索框里輸入mongo并敲下回車有决。

Docker Hub網(wǎng)站

在搜索結(jié)果中,就可以看到官方的鏡像空盼。注意书幕,有official標(biāo)志的才是官方鏡像,這里不建議新手使用其他第三方提供的鏡像揽趾,本文后續(xù)的講解也是基于官方鏡像台汇。

找到官方鏡像

點(diǎn)擊搜索結(jié)果官方鏡像右邊的DETAILS,進(jìn)入鏡像詳細(xì)介紹頁(yè)面篱瞎。在右邊你可以找到下載鏡像的命令docker pull mongo苟呐。

鏡像詳細(xì)頁(yè)

五. 開始安裝

找到了官方鏡像后,我們就可以開始安裝了俐筋。進(jìn)入安裝好了docker的linux服務(wù)器牵素,這里我們以之前教程介紹的阿里云centos7.3環(huán)境為例。

輸入命令澄者,下載mongo官方鏡像到服務(wù)器上笆呆。

docker pull mongo
下載鏡像

耐心等待下載完成,輸入命令查看下載完成的鏡像

docker images
鏡像下載完成

鏡像下載完成粱挡,下面就要開始啟動(dòng)容器了赠幕。啟動(dòng)容器前,建議大家仔細(xì)閱讀前面尋找鏡像時(shí)Docker Hub上關(guān)于mongo鏡像的詳細(xì)說(shuō)明询筏。
在鏡像文檔里榕堰,我們知道了該鏡像映射的端口號(hào)是27017,配置文件的位置在/data/configdb嫌套,數(shù)據(jù)庫(kù)文件的位置在/data/db局冰。
我們輸入如下命令來(lái)啟動(dòng)容器。

docker run -d -p 27017:27017 -v mongo_configdb:/data/configdb -v mongo_db:/data/db --name mongo docker.io/mongo

命令執(zhí)行完后灌危,輸入命令docker ps -a來(lái)查看所有的容器,可以看到mongo已經(jīng)成功啟動(dòng)碳胳。

查看啟動(dòng)好的容器

現(xiàn)在我們使用Robo工具來(lái)嘗試連接勇蝙,在Address填上服務(wù)器的IP地址,端口號(hào)不用改挨约,就用默認(rèn)的27017味混〔ⅲ可以看到連接成功。

使用工具連接

六. 開啟身份認(rèn)證

Docker版本的mongo默認(rèn)不需要身份認(rèn)證翁锡。剛才數(shù)據(jù)庫(kù)雖然啟動(dòng)成功了蔓挖,但是任何人知道ip地址端口號(hào)都可以登錄進(jìn)來(lái)。顯然這樣是不安全的馆衔。那如何打開身份認(rèn)證功能呢瘟判。
Docker Hub上mongo鏡像的官方文檔里,我們可以找到答案角溃,需要在啟動(dòng)容器時(shí)加上--auth命令拷获。

現(xiàn)在我們關(guān)閉并刪除掉剛才的容器,重新使用身份認(rèn)證模式啟動(dòng)一個(gè)容器减细。

docker stop mongo
docker rm mongo
docker run -d -p 27017:27017 -v mongo_configdb:/data/configdb -v mongo_db:/data/db --name mongo docker.io/mongo --auth
身份認(rèn)證模式啟動(dòng)

此時(shí)再通過(guò)Robo連接數(shù)據(jù)庫(kù)匆瓜,發(fā)現(xiàn)連接失敗。因?yàn)槲覀冮_啟了身份認(rèn)證模式未蝌,但還沒(méi)有創(chuàng)建用戶設(shè)置密碼驮吱。

連接mongo

輸入命令進(jìn)入容器內(nèi)部的mongo命令行

docker exec -it mongo mongo admin

在mongo命令行輸入命令創(chuàng)建管理員賬戶

db.createUser({ user: 'jsmith', pwd: 'some-initial-password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
創(chuàng)建管理員賬戶

創(chuàng)建好賬戶之后,我們?cè)賴L試使用Robo工具來(lái)連接萧吠,在Authentication欄目填寫上剛才創(chuàng)建的用戶名密碼左冬,即可連接成功。

連接mongo

七. 創(chuàng)建數(shù)據(jù)庫(kù)并設(shè)置用戶

目前為止我們一直都是在操作mongo自帶的admin庫(kù)怎憋。正常情況下是不建議直接使用這個(gè)庫(kù)的又碌。我們需要自己創(chuàng)建數(shù)據(jù)庫(kù)并設(shè)置新庫(kù)的用戶。

還是先使用docker exec -it mongo mongo admin命令進(jìn)入mongo的命令行頁(yè)面绊袋。
使用上一步驟創(chuàng)建的管理員賬戶進(jìn)行授權(quán)

db.auth("jsmith","some-initial-password");

切換到test庫(kù)(如不存在會(huì)自動(dòng)創(chuàng)建)

use test

創(chuàng)建test庫(kù)下的用戶

db.createUser({ user: 'test', pwd: '123456', roles: [{ role: "readWrite", db: "test" }] });
image.png

創(chuàng)建數(shù)據(jù)庫(kù)并設(shè)置用戶完成毕匀,現(xiàn)在再嘗試使用Robo工具來(lái)連接下看看。
將Database和用戶名密碼改為我們剛才設(shè)置的癌别,點(diǎn)擊Test顯示成功皂岔。

測(cè)試mongo

保存后直接使用工具進(jìn)入數(shù)據(jù)庫(kù),可以看見(jiàn)test庫(kù)展姐。

連接mongo

至此躁垛,Docker版本MongoDB簡(jiǎn)單的安裝使用教程就完畢了。如還有其他不完善的地方圾笨,可在文章下面留言教馆,我會(huì)不定期更新。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末擂达,一起剝皮案震驚了整個(gè)濱河市土铺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖悲敷,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件究恤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡后德,警方通過(guò)查閱死者的電腦和手機(jī)部宿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瓢湃,“玉大人理张,你說(shuō)我怎么就攤上這事∠浼荆” “怎么了涯穷?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)藏雏。 經(jīng)常有香客問(wèn)我拷况,道長(zhǎng),這世上最難降的妖魔是什么掘殴? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任赚瘦,我火速辦了婚禮,結(jié)果婚禮上奏寨,老公的妹妹穿的比我還像新娘起意。我一直安慰自己,他們只是感情好病瞳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布揽咕。 她就那樣靜靜地躺著,像睡著了一般套菜。 火紅的嫁衣襯著肌膚如雪亲善。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天逗柴,我揣著相機(jī)與錄音蛹头,去河邊找鬼。 笑死戏溺,一個(gè)胖子當(dāng)著我的面吹牛渣蜗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旷祸,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼耕拷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了托享?” 一聲冷哼從身側(cè)響起骚烧,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤控淡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后止潘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辫诅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年凭戴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炕矮。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡么夫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肤视,到底是詐尸還是另有隱情档痪,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布邢滑,位于F島的核電站腐螟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏困后。R本人自食惡果不足惜乐纸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摇予。 院中可真熱鬧汽绢,春花似錦、人聲如沸侧戴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酗宋。三九已至积仗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間本缠,已是汗流浹背斥扛。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丹锹,地道東北人稀颁。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像楣黍,于是被迫代替她去往敵國(guó)和親匾灶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 0. 前言 docker是什么租漂?docker是用GO語(yǔ)言開發(fā)的應(yīng)用容器引擎阶女,基于容器化颊糜,沙箱機(jī)制的應(yīng)用部署技術(shù)⊥翰龋可...
    sessionboy閱讀 3,854評(píng)論 2 49
  • Docker — 云時(shí)代的程序分發(fā)方式 要說(shuō)最近一年云計(jì)算業(yè)界有什么大事件衬鱼?Google Compute Engi...
    ahohoho閱讀 15,534評(píng)論 15 147
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡(jiǎn)介 Docke...
    極客圈閱讀 10,501評(píng)論 0 120
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,750評(píng)論 1 21
  • 那年我十六歲憔杨,剛剛踏進(jìn)高中的校園鸟赫,對(duì)那里一切都感到陌生。我走進(jìn)班級(jí)消别,看到有點(diǎn)印象的你抛蚤,手機(jī)的顏色是我最愛(ài)的藍(lán)色,或...
    不要叫我大名閱讀 363評(píng)論 0 0