中间件速查手册
容器与编排构建脚本

Dockerfile 是什么?

描述怎么一层层构建镜像的文本文件

类比:菜谱,按步骤做出这道菜(镜像)

核心指令

记住这几条就能写出 90% 的 Dockerfile。

  • FROM:基础镜像,尽量选 slim/alpine
  • WORKDIR:设置工作目录,避免到处 cd
  • COPY:复制文件,比 ADD 更可预测(ADD 会自动解压)
  • RUN:构建时执行命令,多条用 && 合并减少层数
  • ENV / ARG:环境变量(ARG 只在构建期有效)
  • ENTRYPOINT / CMD:启动命令,ENTRYPOINT 固定、CMD 可被覆盖
  • EXPOSE:声明端口,只是文档作用

缓存与顺序

层缓存按顺序匹配,任何一层变了,后面的层全部失效。所以要先 COPY 依赖清单(package.json/pom.xml)并安装依赖,再 COPY 源码。

多阶段构建

build 阶段装编译器、打包;运行阶段只 COPY 产物。Java 镜像能从 800MB 降到 200MB,攻击面也小得多。

它出现在这些中间件里

相关概念