您的当前位置:首页 > 热点 > 云计算核心技术Docker教程:使用卷和网络来持久化我们的数据 正文
时间:2026-11-15 来源:网络整理 编辑:热点
谷歌搜索留痕霸屏【tg:seogoogle987】
首先,我们将看看在容器中运行数据库,以及我们如何使用卷和网络来持久化我们的数据并允许我们的应用程序与数据库对话。然后,我们将所有内容整合到一个 compose 文件中,这将允许我们使用一个命令设置和运行本地开发环境。最后,我们将看看将调试器连接到我们在容器内运行的应用程序。
我们云计可以使用 MongoDB 的 Docker 官方镜像并在容器中运行它,而不是下载 MongoDB、安装、配置然后将 Mongo 数据库作为服务运行。
在容器中运行 MongoDB 之前,我们希望创建几个卷,Docker 可以管理这些卷来存储我们的持久数据和配置。让我们使用 docker 提供的托管卷算核功能,而不是使用绑定安装。您可以在我们的文档中阅读有关卷的所有信息。
现在让我们创建我们的卷。我们将为数据创建一个,另一个用于 MongoDB 的配置。
$ docker volume create mongodb
$ docker volume create mongodb_config
现在我们将创建心技一个网络,我们的应用程序和数据库将使用该网络相互通信。该网络称为用户定义的桥接网络,它为我们提供了一个很好的 DNS 查找服务,我们可以在创建连接字符串时使用它。
$ docker network create mongodb
现在我们可以在容器中运行 MongoDB 并附加到我们上面创建的卷和网术D络。Docker 将从 Hub 拉取镜像并在本地为您运行。
$ docker run -it --rm -d -v mongodb:/data/db \
-v mongodb_config:/data/configdb -p 27017:27017 \
--network mongodb \
--name mongodocb \
mongo
好的,现在我们有一个正在运行的 MongoDB,让我们更新server.js以使用 MongoDB 而不是内存数据存储。
const ronin = require( 'ronin-server' )
const mocks = require( 'ronin-mocks' )
const datkeabase = require( 'ronin-database' )
const server = ronin.server()
database.connect( process.env.CONNECTIONSTRING )
server.use( '/', mocks.server( server.Ror教uter(), false, false ) )
server.start()
我们已经添加了ronin-database模块并更新了代码以连接到数据库并将内存中的标志设置为 false。我们现在需要重建我们的图像,以便它包含我们的更改。
首先让ronin-database我们使用 npm将模块程:添加到我们的应用程序中。
$ npm install ronin-database
现在我们可以建立我们的形象。
$ docker build --tag node-docker .
现在,让我们运行我们的容器。但是这次我们需要设置CONNECTIONSTRING环境变量,以便我们的应用程序知道使使用用什么连接字符串来访问数据库。我们将在docker run命令中正确执行此操作。
$ docker run \
-it --rm -d \
--network mongodb \
--name rest-server \
-p 8000:8000 \
-e CONNECTIONSTRING=mongodb://mong卷和odb:27017/yoda_notes \
node-docker
让我们测试一下我们的应用程序是否已连接到数据库并能够添加注释。
$ curl --request POST \
--url http://localhost:8000/notes \
--header 'content-type: appli网络cation/json' \
--data '{"name": "this is a note", "text": "this is a note that I wanted to take while I was working on writing a blog post.", "owner": "peter"}'
您应该会从来持我们的服务中收到以下 json。
{"code":"success","payload":{"_id":"5efd0a1552cd422b59d4f994","name":"this is a note","text":"this is a note that I wanted to ta久化ke while I was working on writing a blog post.","owner":"peter","createDate":"2020-07-01T22:11:33.256Z"}}
标签: 澜起科技 山岗 IDT 中兴通讯2026-05-21
标签: 影石创新 影翎A1 大疆 刘靖康2026-09-01
AI初创公司的两年经历,让我学到这7件事2026-07-20
上海市新增生成式人工智能服务备案信息,累计达 83 款2026-07-26
标签: 摩根士丹利 股票交易 财富管理 投行业务2026-06-27
位置、分区:随着云的增长如何克服延迟2026-08-16
标签: 纳真科技 光芯片 DFB激光芯片 AI算力网络2026-07-24
标签: Meta 诈骗广告 Facebook Instagram2026-09-28
标签: IBM 裁员 AI 克里希纳2026-09-05
谷歌或将推出无屏健身手环 Fitbit Air,主打 AI 数字化健康教练2026-07-10
标签: 医渡科技 大数据平台 生命科学 健康管理2026-06-29
标签: 保时捷 保时捷中心 芜湖保时捷 济宁保时捷2026-10-21
Meta内部文件曝光:AI被允许与未成年人"性感对话"引发轩然大波2026-11-06
谷歌正在应用AI破解数据中心的下一代地热能2026-09-12
Facebook和谷歌计划铺设2条海底光缆 连接东南亚和美国2026-09-09
标签: 迅雷2026-11-13
年亏损超13亿!国产老牌手机巨头没落,辉煌时仅次苹果全球第二2026-06-30
标签: 鹅票票 腾讯音乐 猫眼 大麦2026-07-23