在 PM2 中使用 Docker 镜像来部署 Node.js 应用

阅读时长 4 分钟读完

前言

在现代的软件开发中,Docker 已经成为了不可或缺的一部分。Docker 提供了一种轻量级的虚拟化技术,使得我们能够将应用程序和其依赖项打包到一个容器中,并在任何地方运行这个容器。同时,PM2 是一个流行的 Node.js 进程管理器,可以帮助我们管理 Node.js 应用程序的生命周期。在本文中,我们将介绍如何在 PM2 中使用 Docker 镜像来部署 Node.js 应用程序。

准备工作

在开始之前,您需要先安装好 Docker 和 PM2。如果您还没有安装这两个工具,可以按照以下步骤进行安装。

安装 Docker

Docker 的安装可以参考官方文档:https://docs.docker.com/engine/install/

安装 PM2

可以使用 npm 来安装 PM2:

创建 Docker 镜像

我们将使用 Dockerfile 来创建 Docker 镜像。创建一个名为 Dockerfile 的文件,并将以下内容添加到文件中:

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

------- ----

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

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

---- - -

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

上述 Dockerfile 中的每一行都有其特定的作用:

  • FROM node:14-alpine:从 Docker Hub 中拉取 Node.js 14 版本的 Alpine 镜像作为基础镜像。
  • WORKDIR /app:设置工作目录为 /app
  • COPY package.json ./COPY yarn.lock ./:将本地的 package.jsonyarn.lock 文件复制到容器的 /app 目录下。
  • RUN yarn install --production:在容器中运行 yarn install 命令,安装 Node.js 应用程序的依赖项。
  • COPY . .:将本地的所有文件复制到容器的 /app 目录下。
  • CMD ["pm2-runtime", "index.js"]:使用 pm2-runtime 命令启动 Node.js 应用程序。

在 Dockerfile 所在的目录下运行以下命令来构建 Docker 镜像:

其中,myapp 是镜像的名称,可以根据实际情况进行修改。

启动 Docker 容器

在构建好 Docker 镜像后,我们可以使用以下命令来启动 Docker 容器:

其中,myapp 是镜像的名称,-d 参数表示在后台运行容器,--name 参数指定容器的名称,-p 参数将容器的 3000 端口映射到本地的 3000 端口上。

使用 PM2 管理 Docker 容器

尽管我们已经使用 Docker 启动了 Node.js 应用程序,但是我们仍然需要一种方式来管理应用程序的生命周期。在这种情况下,PM2 就是一个很好的选择。

我们可以使用以下命令来在 PM2 中启动 Docker 容器:

其中,myapp 是 Docker 容器的名称。

使用以下命令来查看 PM2 中正在运行的应用程序:

使用以下命令来停止 PM2 中的应用程序:

示例代码

以下是一个简单的 Node.js 应用程序,用于监听 3000 端口并返回 "Hello, World!":

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

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

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

结论

在本文中,我们介绍了如何在 PM2 中使用 Docker 镜像来部署 Node.js 应用程序。通过使用 Docker 和 PM2,我们可以轻松地管理 Node.js 应用程序的生命周期,并且能够将应用程序部署到任何地方。希望这篇文章对您有所帮助!

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

纠错
反馈