docker 虚拟机搭建mongodb一主一从一复制_Docker最全教程——MongoDB容器化(十三)...
上一節我們講述了數據庫容器化之持久保存數據,本節將講訴MongoDB容器化實踐,并且接下來將逐步講解其他數據庫(MySql、Redis等等)的容器化實踐,然后將講訴一些分布式架構的項目實踐。由于實踐需要花費大量的時間,而目年前業務繁忙,只能加班來進行一些實踐并編寫,如果編寫比較慢,請多多海涵。另外,考慮到文本內容表達有限,2月份將會推出視頻教程,并且提供腳本、代碼和筆記。
MongoDB容器化
MongoDB是一個免費的、開源的、跨平臺分布式面向文檔存儲的數據庫,由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。它支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
官網:https://www.mongodb.com/
適用場景
- 網站實時數據處理。它非常適合實時的插入、更新與查詢,并具備網站實時數據存儲所需的復制及高度伸縮性。
- 緩存。由于性能很高,它適合作為信息基礎設施的緩存層。在系統重啟之后,由它搭建的持久化緩存層可以避免下層的數據源過載。
- 高伸縮性高可用的場景。MongoDB使用分片水平縮放,并且可以運行在多個服務器上,平衡負載或復制數據,以便在硬件出現故障時保持系統正常運行。
- 海量數據。
不適用的場景
- 要求高度事務性的系統。
- 傳統的商業智能應用。
- 復雜的跨文檔(表)級聯查詢。
鏡像說明
官方鏡像地址:
https://hub.docker.com/_/mongo
主要環境變量說明
- MONGO_INITDB_ROOT_YSERNAME:管理員賬號,例如:root
- MONGO_INITDB_ROOT_PASSWORD:管理員密碼,例如:12345
運行MongoDB容器鏡像
Powershell:
docker run -p 27017:27017 --name myMongodb `
-d mongo
使用主機目錄保存數據庫文件
PowerShell:
docker run -p 27017:27017 --name myMongodb `
-v d:/temp/data/mongodb:/data/db `
-d mongo
執行之后如下圖所示:
注意:Windows和OS X上的Docker默認設置使用VirtualBox VM來托管Docker守護程序。但是,VirtualBox用于在主機系統和Docker容器之間共享文件夾的機制與MongoDB使用的內存映射文件不兼容(請參閱vbox bug,docs.mongodb.org和相關的jira.mongodb.org錯誤),這意味著無法運行映射到主機的數據目錄的MongoDB容器。
管理Mongodb
使用nosqlbooster管理MongoDB
nosqlbooster以shell為中心的跨平臺GUI的MongoDB管理工具,它提供全面的服務器監控工具,流暢的查詢構建器,SQL查詢支持,ES2017語法支持和真正的智能感知體驗,是非常值得推薦的一個MongoDB管理工具。
官方網址:https://nosqlbooster.com
非常值得推薦的是,NoSQLBooster支持我們使用SQL查詢語法來執行查詢(MongoDB本身不支持,是由NoSQLBooster進行了驗證和轉換處理)。
例如以下MongoDB查詢語法:
db.employees.aggregate([{
$group: { _id: "$department
總結
以上是生活随笔為你收集整理的docker 虚拟机搭建mongodb一主一从一复制_Docker最全教程——MongoDB容器化(十三)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python项目部署失败的原因_pyth
- 下一篇: 描述文件安装失败无法连接到服务器_iOS