PM2 在 Docker 容器中的使用教程

阅读时长 5 分钟读完

PM2 是一款非常好用的 Node.js 进程管理工具,可以帮助我们简化 Node.js 应用的部署和管理流程。而 Docker 是一款流行的应用容器引擎,可以帮助我们更加轻松地运行应用。本文将详细介绍如何在 Docker 容器中使用 PM2。

1. Docker 安装

Docker 安装过程比较简单,可以从官网直接下载并安装。安装完成后,可以通过以下命令验证是否安装成功:

如果输出了版本号,则说明 Docker 安装成功。

2. 创建 Node.js 应用

在 Docker 容器中使用 PM2,首先需要创建一个 Node.js 应用。创建一个名为 app.js 的文件,并输入以下内容:

这个应用非常简单,只是一个简单的 HTTP 服务器,监听端口 3000,并返回一句话。

3. 创建 Dockerfile

在 Node.js 应用的根目录下,创建一个名为 Dockerfile 的文件,并输入以下内容:

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

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

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

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

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

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

以上 Dockerfile 的意思是:

  1. 使用 Node.js 的 LTS 版本作为基础镜像。
  2. 设置工作目录为 /usr/src/app
  3. 将应用的 package.jsonapp.js 文件复制到工作目录。
  4. 在容器中运行 npm install 命令,安装依赖。
  5. 暴露容器的 3000 端口。
  6. 启动应用,命令为 npm start

4. 构建 Docker 镜像

在 Node.js 应用的根目录下,运行以下命令,构建 Docker 镜像:

其中,-t 参数表示要为镜像设置一个名字和标签,. 表示当前目录为 Dockerfile 所在的目录。这个命令会在本地构建一个名为 my-app 的镜像。

5. 运行 Docker 容器

要运行 Docker 容器,可以运行以下命令:

其中,-p 参数表示将容器的 3000 端口映射到主机的 3000 端口,my-app 表示要运行的镜像。运行后,访问 http://localhost:3000,就能看到 Hello World

6. 使用 PM2

现在我们已经将 Node.js 应用打包进了 Docker 容器中,接下来就是如何在容器中使用 PM2 的问题了。新建一个名为 ecosystem.config.js 的文件,并输入以下内容:

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

这个文件是 PM2 的配置文件,在这个配置中,我们指定了要启动的应用名称、脚本文件、实例数量、运行模式、是否启用文件监听功能以及运行环境。

Dockerfile 中,将 CMD 修改为 pm2-runtime start ecosystem.config.js 即可在容器中使用 PM2。修改后的 Dockerfile 如下所示:

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

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

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

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

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

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

需要注意的是,需要在 Dockerfile 中安装 PM2 运行时,因此需要在 Dockerfile 中执行 RUN npm install pm2 -g 命令安装 PM2。安装完成后,运行以下命令构建 Docker 镜像:

接下来就可以通过以下命令运行镜像:

现在,我们已经成功地将 Node.js 应用打包进 Docker 容器,并使用 PM2 管理应用进程了。

7. 总结

本文详细介绍了如何在 Docker 容器中使用 PM2 管理 Node.js 应用。通过 Docker,我们可以将应用轻松地部署到不同的环境中,并通过 PM2 管理和监控应用进程。希望本文能够对大家有所帮助。

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

纠错
反馈