dockerfile最小实践

· 292 words · 1 minute read

思路 🔗

  • 写一个简单的 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