Docker - 第十一章 | 安裝MongoDB
最近看了資料庫的今天的排名,詳情可以看這篇 DB-Engines 发布 8 月份全球資料庫排名,Solr 排名上升 ,而這篇要來介紹的MonogoDB。
搜尋 Image
Searh指令進化一下,只搜尋10顆星以上的。
1  | docker search -f=stars=10 mongo  | 

拉取 Image
1  | docker pull mongo  | 

查看 Image
1  | docker images  | 

執行 Image
使用volume
由於docker卷是持久性的,因此可以專門為此目的建立volume。
1  | docker volume create --name mongo-data  | 
- -d :後台執行 Container ,並返回ID
 - -p 27017:27017 :將 Container 的 27017 Port 映射到主機的 27017 Port (前面代表主機,後面代表容器)
 - -name mongodb :將 Container 取名為 mongodb
 - -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
 - -v mongo-data:/data/db :使用剛建立的volume,mongo-data 掛載到 Container 的 /data/db。
 - mongo :指定安裝的鏡像mongo
 
掛載主機目錄
這不可移植,因為它依賴於主機上具有正確權限的目錄。但是,在需要將此卷分配給某些特定底層存儲的某些情況下,它可能很有用。
1  | cd /Users/morose/Documents/Temp/Docker/MongoDB  | 
- -d :後台執行 Container ,並返回ID
 - -p 27017:27017 :將 Container 的 27017 Port 映射到主機的 27017 Port (前面代表主機,後面代表容器)
 - -name mongodb :將 Container 取名為 mongodb
 - -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
 - -v $PWD/mongo-data :將主機當前目錄下的 /mongo-data 掛載到 Container 的 /data/db。
 - mongo :指定安裝的鏡像mongo
 

確認MongoDB是否有運行?
1  | docker exec mongodb mongo --eval "print(version())"  | 

進入 Container
1  | docker exec -it mongodb bash  | 
- -i :即使沒有附加也保持STDIN 打開
 - -t :分配一個偽終端
 

資料庫測試
詳細的MongoDB shell指令可以參考mongo Shell Quick Reference
要啟動MongoDB shell客戶端,請執行以下命令
1  | mongo  | 

通過以下方式查看實例中存在哪些資料庫
1  | show dbs  | 

建立新資料庫,我們可以使用多步驟過程,第一步是定義我們希望使用的資料庫
1  | use jjtest  | 

我們正在使用資料庫jjtest,但在我們開始建立集合和資料之前它不存在。要使用資料建立集合,我們可以執行以下操作
1  | db.people.save({ firstname: "J.J.", lastname: "Huang" })  | 

people在我們的jjtest資料庫中的新集合中建立了兩個文件,我們可以使用以下內容查詢資料
1  | db.people.find({ firstname: "J.J." })  | 

你剛剛了解如何將MongoDB的Docker鏡像下載和部署為容器,然後使用shell客戶端與其進行交互。Docker不是部署MongoDB的唯一方法,而shell客戶端不是與它交互的唯一方式。這些只是你可以完成的許多示例中的兩個。
註:以上參考了
mongo
MongoDB 教程
使用 docker 建立 MongoDB Replica Set
Getting Started With MongoDB As A Docker Container Deployment
用 Docker 玩轉 MongoDB
