1 安裝 本文假設大家已經安裝好了 docker 並能正常使用,所以不講解如何安裝 docker 了。用 docker 安裝 MongoDB 最新版本如下: 僅需要簡單幾個命令,我們就擁有了MongoDB的最新鏡像了,後續就可以使用了。 2 啟動 完成MongoDB的鏡像下載後,啟動就非常簡單了,一 ...
1 安裝
本文假設大家已經安裝好了docker並能正常使用,所以不講解如何安裝docker了。用docker安裝MongoDB最新版本如下:
# 從repository查找mongo的相關鏡像,結果很多,其中第一條為官方的鏡像
$ 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
僅需要簡單幾個命令,我們就擁有了MongoDB的最新鏡像了,後續就可以使用了。
2 啟動
完成MongoDB的鏡像下載後,啟動就非常簡單了,一個命令即可:
$ docker run -itd --name mongo -p 27017:27017 mongo --auth
305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c
(1)--name
後面的參數為docker容器名;
(2)-p
後面是埠映射,即宿主埠:容器埠
;
(3)--auth
是否開始鑒權,如果不想開啟可以去掉;
成功啟動MongoDB一個實例後,會返回容器ID,如305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c
。
通過命令docker ps
可以查看正在運行的容器,經過檢查,確實已經起來了。
註意:預設數據是存在容器系統的/data/db
目錄下的,如果需要使用自定義的宿主機器目錄,可以在啟動命令加上參數:
-v /my/own/datadir:/data/db
3 創建用戶與集合
## 3.1 進入容器
容器起來後,下一步是進入容器:
# 進入容器可以用以下兩種方法
# 分別是通過容器名和容器ID
$ docker exec -it mongo bash
$ docker exec -it 305ebd823667 bash
上面進入容器後,其實是進入了容器的系統,並打開bash
。
3.2 通過客戶端命令連接資料庫
接著通過mongo
命令連接到MongoDB的資料庫服務。
# 預設連接本地的27017埠的MongoDB
$ mongo
# 指定IP與埠進行連接
$ mongo 127.0.0.1:27017
# 指定用戶名和密碼連接到指定的MongoDB資料庫
$ mongo 127.0.0.1:27017/admin -u user -p password
連接資料庫成功後,會返回一些信息,如SeesionID和版本號等。
3.3 查看版本
(1)在linux命令通過mongo --version
查詢;
(2)連接上資料庫後,通過db.version()
查詢。
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 創建admin管理用戶
連上資料庫後,我們先創建一個admin用戶,用以管理其它用戶:
> 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 創建具有讀寫許可權的用戶
根據業務需求,創建不用的用戶,如下麵創建擁有讀寫許可權的用戶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 認證用戶並操作
> 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 兩款優秀的可視化工具
通過前面的操作,我們已經建立了用戶,並嘗試創建了資料庫和集合。但通過命令行來操作總是不那麼方便,我們需要可視化軟體來進行操作。下麵將介紹兩款優秀的可視化軟體,展示如何連接。如何進行CRUD等操作就不一一介紹了,還是比較友好的,容易使用。
4.1 Robo3T
創建連接:
註意下麵填的是鑒權資料庫,而不是用戶的資料庫:
操作界面:
4.2 IDEA Mongo Plugin
這個是支持JetBrains全系列軟體的插件,IDEA當然也可以安裝。
連接設置:
註意下麵的User Database是該用戶下的資料庫,寫錯了會連不上。
註意下麵Auth Database為鑒權的資料庫,預設為admin。
操作界面:
總結
本文介紹了通過Docker安裝最新版的MongoDB,並通過例子演示瞭如何運行和創建用戶與集合,最後還介紹了兩款非常友好的可視化工具,希望能帶沒有接觸過的人入個門吧。
歡迎關註公眾號<南瓜慢說>,將持續為你更新...
多讀書,多分享;多寫作,多整理。