如何使用Docker安裝一個(gè)MongoDB最新版
1 安裝
本文假設(shè)大家已經(jīng)安裝好了docker并能正常使用,所以不講解如何安裝docker了。用docker安裝MongoDB最新版本如下:
# 從repository查找mongo的相關(guān)鏡像,結(jié)果很多,其中第一條為官方的鏡像 $ docker search mongo # 下載官方鏡像的最新版本 $ docker pull mongo:latest # 完成后,檢查是否下載成功 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos 7 5e35e350aded 12 days ago 203MB mongo latest 965553e202a4 3 weeks ago 363MB hello-world latest fce289e99eb9 10 months ago 1.84kB
僅需要簡(jiǎn)單幾個(gè)命令,我們就擁有了MongoDB的最新鏡像了,后續(xù)就可以使用了。
2 啟動(dòng)
完成MongoDB的鏡像下載后,啟動(dòng)就非常簡(jiǎn)單了,一個(gè)命令即可:
$ docker run -itd --name mongo -p 27017:27017 mongo --auth 305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c
(1)--name后面的參數(shù)為docker容器名;
(2)-p后面是端口映射,即宿主端口:容器端口;
(3)--auth是否開(kāi)始鑒權(quán),如果不想開(kāi)啟可以去掉;
成功啟動(dòng)MongoDB一個(gè)實(shí)例后,會(huì)返回容器ID,如305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c。
通過(guò)命令docker ps可以查看正在運(yùn)行的容器,經(jīng)過(guò)檢查,確實(shí)已經(jīng)起來(lái)了。
注意:默認(rèn)數(shù)據(jù)是存在容器系統(tǒng)的/data/db目錄下的,如果需要使用自定義的宿主機(jī)器目錄,可以在啟動(dòng)命令加上參數(shù):
-v /my/own/datadir:/data/db
3 創(chuàng)建用戶(hù)與集合
3.1 進(jìn)入容器
容器起來(lái)后,下一步是進(jìn)入容器:
# 進(jìn)入容器可以用以下兩種方法 # 分別是通過(guò)容器名和容器ID $ docker exec -it mongo bash $ docker exec -it 305ebd823667 bash
上面進(jìn)入容器后,其實(shí)是進(jìn)入了容器的系統(tǒng),并打開(kāi)bash。
3.2 通過(guò)客戶(hù)端命令連接數(shù)據(jù)庫(kù)
接著通過(guò)mongo命令連接到MongoDB的數(shù)據(jù)庫(kù)服務(wù)。
# 默認(rèn)連接本地的27017端口的MongoDB $ mongo # 指定IP與端口進(jìn)行連接 $ mongo 127.0.0.1:27017 # 指定用戶(hù)名和密碼連接到指定的MongoDB數(shù)據(jù)庫(kù) $ mongo 127.0.0.1:27017/admin -u user -p password
連接數(shù)據(jù)庫(kù)成功后,會(huì)返回一些信息,如SeesionID和版本號(hào)等。
3.3 查看版本
(1)在linux命令通過(guò)mongo --version查詢(xún);
(2)連接上數(shù)據(jù)庫(kù)后,通過(guò)db.version()查詢(xún)。
root@305ebd823667:/# mongo --version MongoDB shell version v4.2.1 git version: edf6d45851c0b9ee15548f0f847df141764a317e OpenSSL version: OpenSSL 1.1.1 11 Sep 2018 root@305ebd823667:/# mongo > db.version() 4.2.1
3.4 創(chuàng)建admin管理用戶(hù)
連上數(shù)據(jù)庫(kù)后,我們先創(chuàng)建一個(gè)admin用戶(hù),用以管理其它用戶(hù):
> use admin
switched to db admin
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
>
3.5 創(chuàng)建具有讀寫(xiě)權(quán)限的用戶(hù)
根據(jù)業(yè)務(wù)需求,創(chuàng)建不用的用戶(hù),如下面創(chuàng)建擁有讀寫(xiě)權(quán)限的用戶(hù)user:
> db.auth('admin','123456');
1
> db.createUser({ user:'user',pwd:'123456',roles:[ { role:'readWrite', db: 'testdb'}]});
Successfully added user: {
"user" : "user",
"roles" : [
{
"role" : "readWrite",
"db" : "testdb"
}
]
}
>
3.6 認(rèn)證用戶(hù)并操作
> db.auth('user','123456')
1
> use testdb
switched to db testdb
>
> db.person.insert({name:'Larry',age:18})
WriteResult({ "nInserted" : 1 })
> db.person.find({})
{ "_id" : ObjectId("5ddaa14edbbac3c4f844366c"), "name" : "Larry", "age" : 18 }
>
4 兩款優(yōu)秀的可視化工具
通過(guò)前面的操作,我們已經(jīng)建立了用戶(hù),并嘗試創(chuàng)建了數(shù)據(jù)庫(kù)和集合。但通過(guò)命令行來(lái)操作總是不那么方便,我們需要可視化軟件來(lái)進(jìn)行操作。下面將介紹兩款優(yōu)秀的可視化軟件,展示如何連接。如何進(jìn)行CRUD等操作就不一一介紹了,還是比較友好的,容易使用。
4.1 Robo3T
創(chuàng)建連接:

注意下面填的是鑒權(quán)數(shù)據(jù)庫(kù),而不是用戶(hù)的數(shù)據(jù)庫(kù):

操作界面:

4.2 IDEA Mongo Plugin
這個(gè)是支持JetBrains全系列軟件的插件,IDEA當(dāng)然也可以安裝。
連接設(shè)置:
注意下面的User Database是該用戶(hù)下的數(shù)據(jù)庫(kù),寫(xiě)錯(cuò)了會(huì)連不上。

注意下面Auth Database為鑒權(quán)的數(shù)據(jù)庫(kù),默認(rèn)為admin。

操作界面:

總結(jié)
本文介紹了通過(guò)Docker安裝最新版的MongoDB,并通過(guò)例子演示了如何運(yùn)行和創(chuàng)建用戶(hù)與集合,最后還介紹了兩款非常友好的可視化工具,希望能帶沒(méi)有接觸過(guò)的人入個(gè)門(mén)吧。
相關(guān)文章
MongoDB 3.6.5常見(jiàn)的安裝失敗原因和解決辦法
在開(kāi)發(fā)過(guò)程中,可能會(huì)用到 MongoDB 數(shù)據(jù)庫(kù),在進(jìn)行MongoDB的安裝過(guò)程中,可能會(huì)遇到各種各樣的問(wèn)題導(dǎo)致安裝失敗,本文將針對(duì)常見(jiàn)的安裝失敗情況(,例如端口占用、系統(tǒng)文件問(wèn)題和版本兼容問(wèn)題等)進(jìn)行分析,并提供解決方案和相應(yīng)的代碼示例2024-03-03
windows與mac安裝mongodb數(shù)據(jù)庫(kù)的方法步驟與注意事項(xiàng)
今天小編就為大家分享一篇關(guān)于windows與mac安裝mongodb數(shù)據(jù)庫(kù)的方法步驟與注意事項(xiàng),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
MongoDB數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)整理
這篇文章介紹了MongoDB數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
數(shù)據(jù)庫(kù)MongoDB啟動(dòng)的三種方式
MongoDB是一個(gè)流行的分布式文檔型數(shù)據(jù)庫(kù),用于存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),本文給大家總結(jié)了數(shù)據(jù)庫(kù)MongoDB啟動(dòng)的三種方式,講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-07-07
MongoDB.NET 2.2.4驅(qū)動(dòng)版本對(duì)Mongodb3.3數(shù)據(jù)庫(kù)中GridFS增刪改查
這篇文章主要為大家詳細(xì)介紹了使用MongoDB.NET 2.2.4驅(qū)動(dòng)版本對(duì)Mongodb3.3數(shù)據(jù)庫(kù)中GridFS增刪改查,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11

