当前位置: 首页-> 财经

我们可以使用MongoDB的官方Docker映像并在容器中运行它

发布时间:2021年10月30日 21:38   来源:TechWeb   发布者:樊华   阅读量:15451   
导读:首先,我们将了解如何在容器中运行数据库,以及如何使用卷和网络来保存数据并允许我们的应用程序与数据库对话然后,我们将所有内容集成到一个合成文件中,这将允许我们用一个命令设置和运行本地开发环境最后,我们将考虑将调试器连接到我们在容器内运行的应用...

首先,我们将了解如何在容器中运行数据库,以及如何使用卷和网络来保存数据并允许我们的应用程序与数据库对话然后,我们将所有内容集成到一个合成文件中,这将允许我们用一个命令设置和运行本地开发环境最后,我们将考虑将调试器连接到我们在容器内运行的应用程序

我们可以使用MongoDB的官方Docker映像并在容器中运行它

我们可以使用MongoDB的官方Docker映像并在容器中运行它,而不是下载MongoDB,安装和配置它以及将Mongo数据库作为服务运行。

在容器中运行MongoDB之前,我们希望创建几个Docker可以管理的卷来存储我们的持久数据和配置让我们使用docker提供的托管卷功能,而不是绑定安装您可以阅读我们文档中关于卷的所有信息

现在让我们创建我们的卷我们将为数据创建一个,为MongoDB配置创建另一个

$ docker卷创建mongodb

$ docker卷创建mongodb_config

现在我们将创建一个网络,我们的应用程序和数据库将使用这个网络相互通信这个网络叫做用户自定义桥接网络,它为我们提供了一个很好的DNS查找服务,我们在创建连接字符串的时候可以使用它

$ docker网络创建mongodb

现在我们可以在容器中运行MongoDB,并将其附加到我们上面创建的卷和网络中Docker将从Hub中提取图像,并在本地为您运行

$ docker run—it—RM—d—v MongoDB :/data/db

—v MongoDB _ config :/data/config db—p 27017336027017

—网络mongodb

—名称mongodb

蒙戈

好了,现在我们有了一个正在运行的MongoDB,让我们更新server.js来使用MongoDB而不是内存数据存储。

const ronin=必需

常量模拟=需要

const数据库=必需

const server=ronin.server

数据库.连接

server.use,false,false))

服务器.启动

我们添加了ronin—database模块,并更新了代码以连接到数据库,并将内存中的标志设置为false现在我们需要重建我们的形象,使它包含我们的变化

首先让ronin—database使用npm向我们的应用程序添加模块。默认情况下,swarm中的每个节点每三个月更新一次证书。您可以通过运行dockerswarmupdate-cert-expire命令来配置此时间间隔。

$ npm安装ronin—数据库

现在我们可以建立自己的形象了。

$ docker构建标记节点。最小旋转值为1小时。有关更多信息,请参见dockerswarmupdateCLI参考。

现在,让我们运行我们的容器但是这次我们需要设置connection string环境变量,以便我们的应用程序知道使用什么连接字符串来访问数据库我们将在docker run命令中正确地做到这一点

$ docker运行

—it — rm —d

—网络mongodb

—名称rest—服务器

—p 8000:8000

—e COnnectionSTRING=MongoDB ://MongoDB :27017/Yoda _ notes

节点记录程序

让我们测试一下我们的应用程序是否连接到数据库并可以添加注释。。

$ curl —请求开机自检

—header ' content—type : application/JSON '

—数据' '名称' ' : ' '这是一个笔记' ',文字' ' : ' '这是我在写博文时想记的笔记。'所有者' : '彼得'

您应该会从我们的服务中收到以下json。

代码' :'success ',' payload ' : ' _ id ' : ' 5ef d0a 1552 CD 422 b 59 d4f 994 ',' name': '这是一个笔记',' text': '这是我在写博文时想记的笔记','所有者' : '彼得','创建日期' : ' 2020—07—01t 22:11:33.256 z '

~全文结束~

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。

分享到微信