如何使用 Docker 构建 Node.js 和 MongoDB 堆叠?

阅读时长 5 分钟读完

在前端开发中,经常需要使用 Node.js 和 MongoDB 来搭建 web 应用程序。使用 Docker 能够更加高效地管理和部署这些技术栈,使开发和部署变得更加简单和快速。

本文将介绍如何使用 Docker 构建 Node.js 和 MongoDB 堆叠,并演示 Dockerfile 和 docker-compose.yml 的用法。

准备工作

为了完成这个教程,你需要:

  • 安装 Docker
  • 熟悉 Node.js 和 MongoDB 的基本操作

编写 Dockerfile 文件

Dockerfile 是一种用于构建 Docker 镜像的文件。首先,我们需要创建一个文件夹,然后在文件夹中创建 Dockerfile 文件,内容如下:

-- -------------------- ---- -------
- ----- ------- -- --------
---- -------

- ---- --- ----------
------- ----

- -- ------------ - ----------------- ----
---- ------------- --

- -----
--- --- -------

- ----------
---- - -

- -- ---- ---------- ---
------ ----

- -- ------- --
--- ------- --------

构建镜像

现在我们已经有了 Dockerfile 文件,可以使用命令构建一个 Node.js 镜像:

其中,-t 标志允许我们为镜像设置一个名称和一个可选的标记。:后面的标记可以标记你的镜像的不同版本。这里我们使用 latest

. 用于告诉 Docker 使用当前目录作为构建上下文。Docker 将使用当前目录中的 Dockerfile 文件来构建镜像。

构建完成后,我们可以通过以下命令运行该节点应用程序:

其中,-p 标志将容器的 3000 端口绑定到主机的 3000 端口,以便我们可以在浏览器中访问它。

添加 MongoDB

现在我们已经有了运行 Node.js 服务器所需的 Docker 镜像,下一步是添加 MongoDB 操作。我们需要编写一个新的 Dockerfile 文件,并使用 docker-compose.yml 文件定义整个堆叠。

要开始,请在与上面的 Dockerfile 同级的目录中创建一个新的 docker-compose.yml 文件。

编写 Dockerfile 文件

我们需要从 MongoDB 官方镜像开始,它提供了启动 MongoDB 所需的所有软件。

这个脚本将在容器运行时执行,并创建一个名为 docker-compose-mongo 的数据库用于我们的应用程序。

编写 docker-compose.yml 文件

我们使用的是 docker-compose.yml 文件来定义我们的 Docker 堆叠,文件可以包含一个或多个服务的定义。对于我们的目的,我们将定义两个服务:一个 Node.js 服务和一个 MongoDB 服务。

-- -------------------- ---- -------
-------- -----

---------
  ---------
    ------ -
    ------
      - ---------
    -----------
      - -----
    ------------
      ---------- ------------------------------------------

  ------
    ------
      -------- -
      ----------- ------------------
    --------
      - -------------

--------
  -----
  • version 指定使用的 Docker Compose 版本。
  • node-app 定义了我们的 Node.js 服务。build 指定使用当前目录的 Dockerfile 文件构建该服务,ports 将容器的 3000 端口绑定到主机的 3000 端口。depends_on 表示该服务依赖于数据库服务。
  • mongo 定义了我们的数据库服务,它使用另一个 Dockerfile 文件进行构建。volumes 中包含一个名为 data 的卷,用于在本地文件系统和容器中存储数据。

运行 Docker 堆叠

我们现在已经有了一个 docker-compose.yml 文件,在所在目录下可以运行以下命令来启动整个堆栈:

此命令构建、启动和链接整个堆栈中的所有服务。访问 http://localhost:3000 应该就可以看到 Node.js 服务在运行,并使用 MongoDB 存储数据。

总结

本文介绍了如何使用 Docker 构建 Node.js 和 MongoDB 堆叠。我们编写了 Dockerfile 文件、docker-compose.yml 文件,并使用命令构建整个堆栈。这一过程可以更高效地管理和部署我们的技术栈,使开发和部署变得更加简单和快速。

示例代码:GitHub

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c6a8f310032fedd38e9913

纠错
反馈