ECS 使用 Docker 部署静态网站为例
我购买的是腾讯云 ECS 服务器
系统盘:ubuntu
准备工作请参考 01 手摸手带你使用Docker 部署静态网站
1. 代码准备
- 直接在 terminal 写代码并不是很方便,这次换个方式,先在本地建好文件夹
nodeapp
, 名字随意起 - 进入
nodeapp
进行初始化,npm init -y
, 进行完这步操作,你就会拥有package.json
文件了 - 本次使用
express
, 执行npm i express -S
安装依赖 - 创建
app.js
const express = require('express');
const app = express();
// 返回数据
app.get('/',(req, res)=> res.status(200).json({user: 'grey', age: 13}));
// 监听 3002 端口
app.listen(3002, () => console.log('running on port 3002'));
- 创建
Dockerfile
# 拉取 node 镜像
FROM node:7-alpine
RUN mkdir -p /src/app
WORKDIR /src/app
COPY package.json /src/app/package.json
# 安装依赖
RUN npm install
COPY . /src/app
# 暴露容器端口
EXPOSE 3002
# 运行
CMD ["npm", "start"]
- 更新
package.json
的scripts
{
"name": "nodeapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1" ,
"start": "node app.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.16.4"
}
}
至此,代码准备工作已经做好了
2. 部署 node.js 应用
- 将本地代码 copy 到服务器,先将
nodeapp
文件夹压缩为zip
格式,执行 copy 命令scp nodeapp.zip root@117.63.100.137:~
上述 root@ 后面的 ip是我乱编的,请替换为你自己的公网ip
-
登录自己的 ECS 服务器,可在命令行使用
image.pngssh root@117.63.100.137
, 输入正确密码即可,进入后ls
一下,即可以看见自己的文件
-
ECS 服务器端安装
apt-get install zip
,用于解压nodeapp
, 执行unzip nodeapp
即可获得解压后的文件夹 -
进入
检查镜像列表nodeapp
文件夹,执行docker build -t nodeapp:v3 .
-
镜像打包成功过后,执行
检查容器列表docker run -d -p 3002:3002 --name node-app nodeapp:v3
已经成功运行,打开你的浏览器
我购买的是腾讯云 ECS 服务器
网友评论