思路 🔗
- 写一个简单的 koa 应用
- 写一个 dockerfile
- 基于 dockerfile 去生成一个镜像
- 基于镜像生成一个容器
- 基于镜像导出镜像的压缩包
写一个简单的 koa 应用 🔗
mkdir koa_demo
cd koa_demo
npm init -y
npm i koa --save
touch app.js
编写 app.js
const koa = require("koa");
const app = new koa();
app.use(async (ctx) => {
ctx.body = "hello, docker";
});
app.listen(4090, () => {
console.log("4090 port is listening");
});
修改 package.json 的 script
{
"scripts": {
"start": "node app.js"
}
}
启动脚本
npm run start
写一个 dockerfile 🔗
touch Dockerfile 编写
FROM node
ADD . /home/web
WORKDIR /home/web
RUN npm install --registry=https://registry.npmmirror.com
EXPOSE 4090
CMD ["node", "./app.js"]
基于 dockerfile 生成一个镜像 🔗
touch .dockerignore 里面写上node_modules。
docker build . -t brett/koa_server:v1.0.0 生成之后, docker images查看镜像。
基于镜像生成一个容器 🔗
docker run -d --name koa_server -p 4090:4090 brett/koa_server:v1.0.0 启动容器, 查看 localhost:4090。
基于镜像导出镜像的压缩包 🔗
docker save brett/koa_server:v1.0.0 > koa_server.tar。