1 初始化项目

  1. mkdir demo && cd demo
  2. npm init -y
  3. npm i koa -s

package.json

  1. {
  2. "private": true,
  3. "name": "myappp",
  4. "version": "1.0.0",
  5. "main": "app.js",
  6. "license": "ISC",
  7. "description": "myappp",
  8. "dependencies": {
  9. "koa": "^2.7.0"
  10. }
  11. }

2 添加程序入口

  1. //app.js
  2. const Koa = require("koa");
  3. const app = new Koa();
  4. app.use((ctx) => {
  5. ctx.body = "Hello Docker";
  6. });
  7. app.listen(3000, () => {
  8. console.log("app started at http://localhost:3000/");
  9. });

3 添加Dockerfile配置

#Dockerfile 

#制定node镜像的版本 
FROM node:10-alpine 

#移动当前目录下面的文件到app目录下 
ADD . /app/ 

#进入到app目录下面,类似cd 
WORKDIR /app 

#安装依赖 
RUN npm install 

#对外暴露的端口 
EXPOSE 3000 

#程序启动脚本 
CMD ["node", "app.js"]

4 生成镜像

# 定制镜像 
docker build -t mynode . 

# 运行 
docker run -p 3000:3000 -d mynode

image.png