Docker最全教程——MongoDB容器化(十三)
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", total: { $sum: "$salary" }}
}])
可以使用我们熟悉的SQL查询语法来查询:
mb.runSQLQuery(`
SELECT department, SUM(salary) AS total FROM employees GROUP BY department
`)
这里附上一个MySql和MongoDB的语法对比示例:
同时,NoSQLBooster还提供丰富的性能监视和分析工具,如Visual Explain Plan:
使用MongoDB Compass
MongoDB Compass是MongoDB的可视化工具,适用于Linux,Mac或Windows,能够非常直观的查看和管理数据,并且可以轻松识别可能导致性能问题的瓶颈或慢查询,这意味着我们可以更快地解决问题。
Docker最全教程——从理论到实战(一)
Docker最全教程——从理论到实战(二)
Docker最全教程——从理论到实战(三)
Docker最全教程——从理论到实战(四)
Docker最全教程——从理论到实战(五)
Docker最全教程——从理论到实战(六)
Docker最全教程——从理论到实战(七)
Docker最全教程——从理论到实战(八)
Docker最全教程——从理论到实战(九)
Docker最全教程之使用TencentHub来完成CI(十)
Docker最全教程——数据库容器化(十一)
Docker最全教程——数据库容器化之持久保存数据(十二)
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
Docker最全教程——MongoDB容器化(十三)相关推荐
- Docker最全教程——Redis容器化以及排行榜实战(十三)
Docker最全教程--Redis容器化以及排行榜实战(十三) 原文:Docker最全教程--Redis容器化以及排行榜实战(十三) 前言 容器教程的路还很长,笔者尽量根据实践来不断地完善.由于在编写 ...
- Docker最全教程——数据库容器化之持久保存数据(十一)
Docker最全教程--数据库容器化之持久保存数据(十一) 原文:Docker最全教程--数据库容器化之持久保存数据(十一) 上一节我们讲述了SQL Server容器化实践(注意,SQL Server ...
- Docker最全教程——数据库容器化之持久保存数据(十二)
上一节我们讲述了SQL Server容器化实践(注意,SQL Server现在也支持跨平台),本节将讲述如何持久保存数据,并且接下来将逐步讲解其他数据库(MySql.Redis.Mongodb等等)的 ...
- docker 虚拟机搭建mongodb一主一从一复制_Docker最全教程——MongoDB容器化(十三)...
上一节我们讲述了数据库容器化之持久保存数据,本节将讲诉MongoDB容器化实践,并且接下来将逐步讲解其他数据库(MySql.Redis等等)的容器化实践,然后将讲诉一些分布式架构的项目实践.由于实践需 ...
- Docker最全教程——数据库容器化(十一)
终于按时完成第二篇.本来准备着手讲一些实践,但是数据库部分没有讲到,部分实践会存在一些问题,于是就有了此篇以及后续--数据库容器化.本篇将从SQL Server容器化实践开始,并逐步讲解其他数据库的容 ...
- Docker最全教程之使用 Visual Studio Code玩转Docker(二十一)
VS Code是一个年轻的编辑器,但是确实是非常犀利.通过本篇,老司机带你使用VS Code玩转Docker--相信阅读本篇之后,无论是初学者还是老手,都可以非常方便的玩转Docker了!所谓是&qu ...
- Docker最全教程之使用.NET Core推送钉钉消息(二十)
前言 上一篇我们通过实战分享了使用Go推送钉钉消息,由于技痒,笔者现在也编写了一个.NET Core的Demo,作为简单的对照和说明. 最后,由于精力有限,笔者希望有兴趣的朋友可以分享下使用CoreR ...
- Docker最全教程之使用TeamCity来完成内部CI、CD流程(十七)
本篇教程主要讲解基于容器服务搭建TeamCity服务,并且完成内部项目的CI流程配置.教程中也分享了一个简单的CI.CD流程,仅作探讨.不过由于篇幅有限,完整的DevOps,我们后续独立探讨. 为了降 ...
- Docker最全教程之树莓派和Docker(十六)
前言 树莓派(Raspberry Pi)是一台卡片电脑(只有信用卡大小),我们可以使用树莓派做很多事情,比如智能家居的中控.航空器.BT下载器.挖矿机.智能机器人.小型服务器(花生壳+网站)等等. 目 ...
最新文章
- 【面向工业界】推荐算法工程师培养计划
- node.js入门 - 2.创建一个简单聊天室
- python第三方库有哪些-我常用的几个第三方 Python 库
- Spring Data Pivotal Gemfire教程
- Linux core dumps 的生成
- 樊登读书分享ppt_最后一波 | 24份樊登亲手撰写PPT免费送
- 电脑连手机热点DNS服务器无响应,电脑连接手机热点无法上网解决方法有哪些
- 「 OptiTrack」搭建动作视觉运动捕捉系统教程
- 【10天企业定制课】2018秋PS软件photoshop/CC应用计划学习视频-孙伟-专题视频课程...
- 学习笔记——利用串口通信控制LED指示灯开关
- EF Core 批量写入数据使用整理_EF Core批量插入数据(一)
- 克罗内克积(Kronecker product)与笛卡尔乘积(Cartesian product)
- 排查内存orJVM内存飙高
- Win10 配置Java JDK 16 环境变量
- 大数据——把Kafka中的数据传输到HBase中
- 多多自走棋改动_多多自走棋:几个隐藏更新,体验服公告真没提,有一项熟悉又隐蔽...
- 解决VirtualBox CentOS8无法调整分辨率的问题
- 计算机二级Python嵩天老师Mooc学习笔记:天天向上的力量
- 基于cnn的图像二分类算法(一)
- 2008521美赛E题