打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Docker部署node程序+PM2守护进程+mongodb数据库

这里有精心准备的PPT,大家可以先过目一下
PPT链接

先准备一个Nodejs实例

我们使用 Express脚手架进行演示

http://www.expressjs.com.cn/starter/generator.html

通过应用生成器express-generator可以快速生成一个应用的骨架
express-generator包含了express命令行工具

npm install express-generator -g           //安装全局生成器express --view=pug myapp                    //创建名为myapp的express应用cd myapp    //进入myapp文件夹npm install     //安装依赖包npm start    //启动访问localhost:3000 页面出现Welcome to Express

编写Dockerfile

先从官方链接下载Docker
然后在本地项目中创建Dockerfile文件并编写

FROM        node:latest  //使用最新版本的node镜像RUN          mkdir -p /usr/src/app //在容器内创建目录 WORKDIR /usr/src/app       //设置工作目录COPY      . /usr/src/app //将本机所有内容拷贝至镜像目录RUN          npm install //执行npm install命令EXPOSE    3000  //端口暴露CMD         [“npm”,”start”]   //启动命令然后使用docker命令完成镜像的打包docker build -t myapp .  //打包标签为myapp的镜像docker run -d -p 3000:3000 --name=”myapp” myapp    //后台运行指定名称和端口号映射localhost:3000                                    //访问出现Welcome to Expressdocker logs -f --tail 100 myapp                                      //查看最后100行日志


什么是PM2?
https://pm2.keymetrics.io/

简介:

PM2是北京邦永科技有限公司自主研发的一套既融入了国际先进的项目管理思想,又结合了国内管理习惯及标准的管理集成系统,既适合于企业级多项目应用,同时也可用于单个的大型项目使用。

特点:

PM2软件以PMI的九大项目管理知识体系为主导思想,以成熟的IT技术为手段,将现代项目管理理论、国内项目管理规程与习惯、项目管理专家的智慧等集成到一起,通过专业管理+平台+协同办公的模式,使项目管理水平质的提高成为可能。
以计划为龙头运筹系统、以合同为中心全面记录、以费用管理为核心深度控制;
嫁接先进的、与国际接轨的项目管理方法体系(理论、工具、技能和方法);
依托邦永科技的项目管理应用实践经验,为项目型企业构建跨区域、分布式的多项目管理平台;
跨越企业从业务操作层、管理层、决策层三个不同层次的实际需求,满足单项目管理、多项目管理、项目组合管理及企业集约化经营的要求;
实现企业信息化从承包工程项目管理信息化–企业多项目集成管理信息化–以项目管理为核心的经营管理信息化这一过程。

PM2常用命令

1. pm2 start app.js //启动应用程序2. pm2 start app.js -i 4 //启动四个应用程序实例,内置分在均衡3. pm2 start app.js -i max //根据机器的核数确定实例数目4. pm2 start app.js --name="app" //为应用程序起别名5. pm2 start app.js --watch //文件变化时自动重启应用,忽略node_module文件夹内的更改6. pm2 list //展示所有pm2启动的应用程序7. pm2 jlist //json形式的应用程序信息8. pm2 prettylist //美化的json信息9. pm2 describe <appid> //展示特定的应用程序详细信息10. pm2 monit //展示每个应用程序的CPU和内存占用情况,每30s检查一次11. pm2 show <appname> //展示应用程序的所有信息12. pm2 log  //展示所有应用程序日志13. pm2 log --lines 200 //查看历史日志14. pm2 reloadLogs //重启日志文件15. pm2 flush //清空所有日志文件16. pm2 stop all //停止所有应用程序17. pm2 stop <appid> //停止指定应用程序18. pm2 restart all //重启所有应用程序19. pm2 delete all //删除所有应用程序20. pm2 delete <appid> //删除指定应用程序16. pm2 scale <appname> 10 //指定名称应用实例扩展至10个

PM2实战

在原Dockerfile文件中添加RUN npm install pm2 -g 修改CMD启动命令CMD ["pm2-runtime","./bin/www","-i","4", "--watch", "--name", "myapp"]  然后重新启动容器访问如果进程崩溃,则pm2自动重启

然后我们再输入以下命令

docker exec -it myapp /bin/bash    //进入该容器的命令终端pm2 logs//查看pm2日志pm2 list//查看pm2进程运行列表


pm2可视化链接

同样的,我们也可以使用pm2脚本程序操作

pm2 ecosystem //生成脚本文件pm2 start ecosystem.config.jsmodule.exports = {  apps: [{    name: 'www',    script: `${__dirname}/bin/www`,    // Options reference: https://pm2.io/doc/en/runtime/reference/ecosystem-file/    instances: 4, //应用启动实例的个数    autorestart: true, //发生异常情况下自动重启    watch: true, //更改文件时自动重启    max_memory_restart: '1G', //最大内存限制数,超出重启    env: { //环境变量      NODE_ENV: 'development'    },    env_production: {      NODE_ENV: 'production'    }  },  //......   ]};

安装和部署mongodb docker

1. docker search mongo  //搜索所有mongo镜像2. docker pull mongo   //拉取官方镜像3. docker imsages   //查看所有镜像4. docker run -p 27017:27017 -v $PWD -d mongo //$pwd选择当前目录为mongodb工作目录,也可以自己指定5. docker ps -a //查看mmongo工作状态

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
express安装与基本使用
docker 中运行的 jenkins 使用 npm 构建 Node.js 应用
SAP Commerce Cloud 里的 jsapps 和 jsapps-ssr 容器
docker 入门1
Docker 镜像优化:从 1.16GB 到 22.4MB
jenkin docker node 自动化部署配置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服