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