Docker部署node服务
一、node服务配置
1、修改 package.json , 并写入相关信息和依赖
vim package.json
{ "name": "dockerTest", "version": "1.0.0", "description": "Node.js on Docker", "author": "Docker", "main": "app.js", "scripts": { "start": "node app.js" }, "dependencies": { "express": "^4.13.3" } }
2、修改 app.js
vi app.js
var express = require('express'); var PORT = 8000; # 保持与服务启动端口一致 var app = express(); app.get('/', function (req, res) { res.send('Helloworld\n'); }); app.listen(PORT); console.log('Running on http://localhost:' + PORT);
二、编辑Dockerfile
FROM node:12 RUN mkdir -p /home/vue_shop # 在容器中创建目录 WORKDIR /home/vue_shop # 将容器工作目录定位至 /home/vue_shop COPY . /home/vue_shop # 将当前目录下的文件复制到容器中的指定目录 RUN npm install # 执行npm环境安装 EXPOSE 8000 ## 将容器内的端口导出给主机,便于访问,保持与服务启动端口及app.js中的端口一致 CMD npm start
## 如果想运行多条指令可以这样:
## CMD git pull && npm install && npm start
三、构建 Images
docker build -t vue_shop_node .
四、使用镜像创建容器并启动
docker run --name=vue_shop --restart=always -p 0.0.0.0:8000:8000 -d vue_shop_node
此时,我们就可以通过浏览器访问我们的node服务了
五、在Docker中用 pm2 或 forever 部署 nodejs项目
1、 pm2
使用命令 pm2 start app.js 之后, pm2 默认在后台运行, 如果使用了Docker后,容器运行并立即退出,需要手动给“pm2”指定参数 --no-daemon
在Dockerfile中:
--no-daemon // run pm2 daemon in the foreground if it doesn't exist already CMD pm2 start app.js --no-daemon // 设置启动方式 # 或者 使用 pm2-docker CMD pm2-docker start app.js
2、 forever
同理forever也是
Forever start script.js runs in the background. To run forever in the foreground, try forever script.js.
CMD forever -c 'node --harmony' app.js // 设置启动方式
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~