测试node 代码
//app.js
const koa = require("koa");
const app = new koa();
const router = require("koa-router")();
router.get("/",async ctx=>{
ctx.body = {
code:200,
msg:"hello aliyun"
}
})
app.use(router.routes())
app.listen(8080);
//package.json
{
"name": "data",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"koa": "^2.13.1",
"koa-router": "^10.0.0"
}
}
Dockerfile
//Dockerfile 使用这个文件构建一个镜像 # 引入Node FROM node:latest # 在容器内创建工作目录 RUN mkdir -p /app # 指定容器工作目录 WORKDIR /app #将当前目录下的所有文件,都拷贝进入 image 文件的/app目录。 COPY . /app RUN npm install --registry=https://registry.npm.taobao.org RUN npm install pm2 -g --registry=https://registry.npm.taobao.org #对外暴露的端口 EXPOSE 8080 #程序启动脚本 CMD ["pm2-runtime", "app.js"]
Linux上构建镜像
在Dockerfile同级路径下执行如下命令构建镜像
docker build -t myapp .
启动容器
docker run -d -p 8082:8080 --name myapp myapp
1.使用myapp这个镜像去启动一个容器
2.主机器的8080端口映射到8080,8080端口也就是我们的Dockerfile对外暴露的接口。
3.-d表示后台运行。-p表示指定端口映射
docker stop xxx //停止容器
docker rm xxx //删除容器