金笔书生 發表於 2019-1-24 09:29:00

Docker最全教程——MongoDB容器化(十二)

<h1><strong>MongoDB容器化</strong></h1>
<p>MongoDB是一个免费的、开源的、跨平台分布式面向文档存储的数据库,<span style="font-family: 等线">由</span>C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。</p>
<p>MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。</p>
<p>官网:https://www.mongodb.com/</p>
<p><img src="https://img2018.cnblogs.com/blog/70544/201901/70544-20190124092205859-79738330.png" alt=""></p>
<h2><strong>适用场景</strong></h2>
<ul>
<li class="18">网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。</li>
<li class="18">缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。</li>
<li class="18">高伸缩性高可用<span style="font-family: 等线">的场景。</span>MongoDB使用分片水平缩放,并且可以运行在多个服务器上,平衡负载或复制数据,以便在硬件出现故障时保持系统正常运行。</li>
<li class="18">海量数据。</li>
</ul>
<p class="18">&nbsp;<img src="https://img2018.cnblogs.com/blog/70544/201901/70544-20190124092236200-1980059747.png" alt=""></p>
<h2><strong>不适用的场景</strong></h2>
<ul>
<li class="18">要求高度事务性的系统。</li>
<li class="18">传统的商业智能应用。</li>
<li class="18">复杂的跨文档(表)级联查询。</li>
</ul>
<h2><strong>镜像说明</strong></h2>
<p>官方镜像地址:<span style="text-decoration: underline">https://hub.docker.com/_/mongo</span></p>
<p>&nbsp;</p>
<h2><strong>主要环境变量说明</strong></h2>
<ul>
<li class="18">MONGO_INITDB_ROOT_USERNAME:管理员账号,例如:root</li>
<li class="18">MONGO_INITDB_ROOT_PASSWORD: <span style="font-family: 等线">管理员密码,例如:</span>12345</li>
</ul>
<h2><strong><span style="font-family: &quot;等线 Light&quot;">运行</span>MongoDB容器镜像</strong></h2>
<p>Powershell:</p>
<p class="p">docker run &nbsp;-p 27017:27017 --name myMongodb `</p>
<p class="p">&nbsp;&nbsp;&nbsp;-d mongo</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/70544/201901/70544-20190124092351343-858428883.png" alt=""></p>
<p>&nbsp;</p>
<h2><strong>使用主机目录保存数据库文件</strong></h2>
<p>PowerShell:</p>
<p class="p">docker run &nbsp;-p 27017:27017 --name myMongodb `</p>
<p class="p">&nbsp;&nbsp;&nbsp;-v d:/temp/data/mongodb:/data/db `</p>
<p class="p">&nbsp;&nbsp;&nbsp;-d mongo</p>
<p>执行之后如下图所示:</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/70544/201901/70544-20190124092425257-1383530996.png" alt=""></p>
<p class="16"><span style="color: rgba(51, 102, 255, 1)"><em>注意:</em><em>Windows和OS X上的Docker默认设置使用VirtualBox VM来托管Docker守护程序。</em><em>但是</em><em><span style="font-family: 等线">,</span>VirtualBox用于在主机系统和Docker容器之间共享文件夹的机制与MongoDB使用的内存映射文件不兼容(请参阅vbox bug,docs.mongodb.org和相关的jira.mongodb.org错误)</em><em>,</em><em><span style="font-family: 等线">这意味着无法运行映射到主机的数据目录的</span>MongoDB容器。</em></span></p>
<h2><strong><span style="font-family: &quot;等线 Light&quot;">管理</span>Mon</strong><strong>g</strong><strong>o</strong><strong>db</strong></h2>
<h3><strong>使用</strong><strong>nosqlbooster</strong><strong><span style="font-family: 等线">管理</span>MongoDB</strong></h3>
<p>nosqlbooster以shell为中心的跨平台GUI<span style="font-family: 等线">的</span>MongoDB管理工具,它提供全面的服务器监控工具,流畅的查询构建器,SQL查询支持<span style="font-family: 等线">,</span>ES2017语法支持和真正的智能感知体验<span style="font-family: 等线">,是非常值得推荐的一个</span>MongoDB管理工具。</p>
<p>官方网址:https://nosqlbooster.com</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/70544/201901/70544-20190124092526624-490497151.gif" alt=""></p>
<p>&nbsp;非常值得推荐的是,NoSQLBooster<span style="font-family: 等线">支持我们使用</span>SQL查询语法来执行查询(MongoDB本身不支持,是由NoSQLBooster进行了验证和转换处理)。</p>
<p><span style="font-family: 等线">例如以下</span>MongoDB查询语法:</p>
<p>db.employees.aggregate([{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$group: { _id: &nbsp;&nbsp;"$department", total: { $sum: "$salary" }}</p>
<p>}])</p>
<p><span style="font-family: 等线">可以使用我们熟悉的</span>SQL查询语法来查询:</p>
<p>mb.runSQLQuery(`</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT department, SUM(salary) AS total FROM employees GROUP BY department</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>`)</p>
<p><span style="font-family: 等线">这里附上一个</span>MySql和MongoDB的语法对比示例:</p>
<p><img src="https://img2018.cnblogs.com/blog/70544/201901/70544-20190124092553737-2071498793.png" alt="">&nbsp;</p>
<p>同时,NoSQLBooster<span style="font-family: 等线">还</span><span style="font-family: 等线">提供丰富的性能监视和分析工具</span><span style="font-family: 等线">,如</span>Visual Explain Plan<span style="font-family: 等线">:</span></p>
<p><img src="https://img2018.cnblogs.com/blog/70544/201901/70544-20190124092616606-163034192.png" alt="">&nbsp;</p>
<h2><strong><span style="font-family: 等线">使用</span>MongoDB</strong><strong>&nbsp;</strong><strong>Com</strong><strong>pass</strong></h2>
<p>MongoDB Compass<span style="font-family: 等线">是</span>MongoDB的可视化工具,适用于Linux,Mac或Windows,能够非常直观的查看和管理数据,并且可以轻松识别可能导致性能问题的瓶颈或慢查询,这意味着我们可以更快地解决问题。</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/70544/201901/70544-20190124092651112-1835961426.png" alt=""></p>
<p><img src="https://img2018.cnblogs.com/blog/70544/201901/70544-20190124092702050-1138214240.png" alt=""></p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    作者:雪雁<br>出处:http://www.cnblogs.com/codelove/
<br>如果喜欢作者的文章,请关注【CodeSpirit-码灵】公众号以便第一时间获得最新内容。本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。<br><b>静听鸟语花香,漫赏云卷云舒。</b>
<br>
<img src="https://images.cnblogs.com/cnblogs_com/codelove/315887/o_251224070213_%E5%85%AC%E4%BC%97%E5%8F%B7.jpg" width="100" height="100"><br><br>
来源:https://www.cnblogs.com/codelove/p/10312692.html
頁: [1]
查看完整版本: Docker最全教程——MongoDB容器化(十二)