首先,我们将看看在容器中运行数据库,以及我们如何使用卷和网络来持久化我们的数据并允许我们的应用程序与数据库对话。然后,我们将所有内容整合到一个 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 mongodb \
mocongo
好的,现在我们有一个正在运行的 MongoDB,让我们更新server.js以使用 MongoDB 而不是内存数据存储。
const ronin = require( 'ronin-server' )
const mocks = require( 'ronin-mocks' )
const databakese = require( 'ronin-database' )
const server = ronin.server()
database.connect( process.env.CONNECTIONSTRING )
server.use( '/', mocks.server( server.Router教r(), 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://mongodb:2卷和7017/yoda_notes \
node-docker
让我们测试一下我们的应用程序是否已连接到数据库并能够添加注释。
$ curl --request POST \
--url http://localhost:8000/notes \
--header 'content-type: applicat网络ion/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"}}
顶: 39008踩: 2409
云计算核心技术Docker教程:使用卷和网络来持久化我们的数据
人参与 | 时间:2026-11-14
相关文章
- 大模型AI扫地机器人 “翻车”:成功率仅 40%!家庭应用仍有待提高
- 标签: 奇瑞汽车 尹同跃 固态电池 Robotaxi
- 云安全日报210901:IBM企业身份管理解决方案发现重要漏洞,需要尽快升级
- 云安全日报220616:思科电子邮件安全设备发现身份验证绕过漏洞,需要尽快升级
- DNA机器人进化!这款软件能用几分钟造出复杂结构纳米设备,进入你的身体执行任务
- 标签: 飞猪 问一问 AI旅游 智能出行
- 云安全日报210825:Ubuntu Linux内核发现任意代码执行漏洞,需要尽快升级
- 常用的清理 Kubernetes 集群资源命令
- 阿里云表格存储产品IoTstore2.0分析存储将商业化收费
- 潞晨科技自研Open-Sora 2.0 被收录进《State of AI Report 2025》






评论专区