我们可以使用MongoDB的官方Docker映像并在容器中运行它
2021-10-30 18:55 来源:TechWeb 阅读量:5842
首先,我们将了解如何在容器中运行数据库,以及如何使用卷和网络来保存数据并允许我们的应用程序与数据库对话然后,我们将所有内容集成到一个合成文件中,这将允许我们用一个命令设置和运行本地开发环境最后,我们将考虑将调试器连接到我们在容器内运行的应用程序
我们可以使用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而不是内存数据存储。证书包含随机生成的节点标识,用于标识证书通用名称下的节点和组织单位(OU)下的角色。
const ronin=必需
常量模拟=需要
const数据库=必需
const server=ronin.server
数据库.连接
server.use,false,false))
服务器.启动
我们添加了ronin—database模块,并更新了代码以连接到数据库,并将内存中的标志设置为false现在我们需要重建我们的形象,使它包含我们的变化
首先让ronin—database使用npm向我们的应用程序添加模块。
$ npm安装ronin—数据库
现在我们可以建立自己的形象了。
$ docker构建标记节点。。
现在,让我们运行我们的容器但是这次我们需要设置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 '
。声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。