在本地myapp文件夹下配置几个文件
//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 使用这个文件构建一个镜像
# 引入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"]
2 Linux上构建镜像
在Dockerfile同级路径下执行如下命令构建镜像
docker build -t myapp .
3 启动容器
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 //删除容器