前言
随着 Node.js 在 Web 开发中的应用越来越广泛,开发和部署 Node.js 应用的方式也在不断地变化和发展。其中,使用 Docker 镜像在不同环境间保持一致性的需求也越来越大。而在使用 Docker 镜像部署 Node.js 应用的过程中,镜像管理也是一个不可忽视的问题。
本文将介绍如何使用 Harbor 和 PM2 进行 Node.js 应用的镜像管理。Harbor 是一个企业级的 Docker 镜像仓库,是一个可靠的镜像存储和分发解决方案。而 PM2 则是一个流程管理工具,可以让我们简单地管理指定的 Node.js 进程。
操作步骤
步骤一:安装 Harbor
下载并安装 Docker(本文不再赘述);
获取 Harbor 最新版本的 Docker 镜像:
docker pull goharbor/harbor:latest
;启动 Harbor:
docker run -p 80:80 -p 443:443 -p 4443:4443 \ -v /data/cert:/harbor_storage/cert \ -v /data/database:/harbor_storage/database \ -v /data/registry:/harbor_storage/registry \ -v /data/jobservice:/harbor_storage/jobservice \ goharbor/harbor:latest
其中,
/data
目录为自定义的存储目录,可以根据实际需求进行修改。当控制台输出如下信息时,Harbor 启动成功:
[2019-08-15T02:52:07.207Z] [INFO] main.go 446: goharbor/harbor:v1.8.1 harbor started
访问
http://your_ip
,如果看到 Harbor 的登录界面,说明 Harbor 安装成功。
步骤二:使用 Harbor 管理 Node.js 应用镜像
创建一个 Node.js 应用,并编写 Dockerfile 文件:
FROM node:14-alpine WORKDIR /app COPY . /app RUN npm install CMD ["npm", "start"]
在代码库中添加
.dockerignore
文件,指定不需要复制到镜像中的文件和目录:node_modules npm-debug.log
构建 Docker 镜像:
docker build -t your_registry_url/your_project_name/your_docker_image_name .
其中,
your_registry_url
为 Harbor 的域名或 IP 地址,your_project_name
为项目名,your_docker_image_name
为镜像名。登录 Harbor:
docker login -u your_username -p your_password your_registry_url
其中,
your_username
和your_password
分别为 Harbor 的登录用户名和密码,your_registry_url
为 Harbor 的域名或 IP 地址。推送镜像到 Harbor:
docker push your_registry_url/your_project_name/your_docker_image_name
步骤三:使用 PM2 管理 Node.js 应用
安装 PM2:
npm install pm2 -g
启动 Node.js 应用:
pm2 start your_app_name --name your_process_name --watch --env production
其中,
your_app_name
为应用的入口文件,your_process_name
为进程名称,--watch
参数表示监控文件变化,--env production
参数表示使用生产环境。查看当前运行的应用:
pm2 ls
停止应用:
pm2 stop your_process_name
卸载应用:
pm2 delete your_process_name
步骤四:使用 Harbor 和 PM2 进行应用部署
在部署服务器上运行应用:
docker run --name your_container_name \ --net host \ -d your_registry_url/your_project_name/your_docker_image_name
其中,
your_container_name
为容器名称,--net host
参数表示使用主机网络模式,可以使用主机 IP 地址访问应用。在生产服务器上启动应用:
pm2 start your_app_name --name your_process_name --watch --env production
其中,
your_app_name
为应用的入口文件,your_process_name
为进程名称,--watch
参数表示监控文件变化,--env production
参数表示使用生产环境。在运行过程中,PM2 可以自动监控 Node.js 应用的异常,如果应用出现异常,PM2 可以自动重启 Node.js 应用,保证应用的正常运行。
总结
本文介绍了使用 Harbor 和 PM2 进行 Node.js 应用的镜像管理和部署的详细步骤。通过使用 Harbor,我们可以在不同的环境中快速地进行 Node.js 应用的部署,保证应用的一致性。而通过使用 PM2,我们可以对运行的 Node.js 应用进行监控和管理,保证应用的稳定性和可靠性。希望本文对大家理解和应用 Node.js 技术有所帮助,也欢迎大家在评论区留言或者私信给我提出宝贵的意见和建议。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a0091a48841e9894c6691f