Files
docker_practice/07_dockerfile/summary.md
T
yeasy 8b9e4518c8 docs(content): add Mac alternatives, K8s transition guide, CI/CD registry push example
- Add OrbStack/Colima comparison table to Mac install chapter (3.7.4)
- Add Docker→K8s concept mapping paragraph to Ch13 intro
- Add KubeKey/RKE2 deployment tool notes to Ch14
- Add production image checklist to Dockerfile chapter summary
- Add build-and-push-to-registry workflow example to GitHub Actions section
- Expand Ch18 security summary with dimension table
2026-05-21 21:33:58 -07:00

2.6 KiB
Raw Blame History

本章小结

本章详细介绍了 Dockerfile 的所有核心指令,以下是各指令要点的速查表。

指令 作用 关键要点
FROM 指定基础镜像 必须是第一条指令
RUN 在新层执行命令 合并命令、清理缓存以减小体积
COPY 复制文件 优先使用,支持 --from
ADD 更高级的复制 自动解压 tar,不推荐用于下载
CMD 容器启动默认命令 可被 docker run 参数覆盖
ENTRYPOINT 容器入口点 固定启动命令,CMD 作为默认参数
ENV 设置环境变量 构建时 + 运行时均生效
ARG 构建参数 仅构建时生效,FROM 后需重新声明
VOLUME 定义匿名卷 VOLUME 之后的修改会丢失
EXPOSE 声明端口 仅文档作用,不自动映射
WORKDIR 指定工作目录 替代 RUN cd,目录不存在会自动创建
USER 指定运行用户 用户必须已存在,推荐 gosu
HEALTHCHECK 健康检查 支持 starting/healthy/unhealthy 状态
ONBUILD 延迟执行指令 只继承一次,不可级联
LABEL 添加元数据 推荐 OCI 标准标签,替代 MAINTAINER
SHELL 更改默认 shell 推荐 ["/bin/bash", "-o", "pipefail", "-c"]

生产镜像快速检查清单

在将镜像推向生产之前,建议逐条过一遍以下清单:

  • 基础镜像选择了最小化版本(如 alpinedistroless
  • 使用了多阶段构建,最终镜像不含编译工具链
  • 以非 root 用户运行(USER 指令)
  • COPY 优先于 ADD,且仅复制必要文件
  • RUN 指令合并了 apt-get update && install && rm -rf /var/lib/apt/lists/*
  • 设置了 HEALTHCHECK
  • 使用了 .dockerignore 排除 .gitnode_modules 等无关文件
  • 镜像标签使用了具体版本号或 commit hash,而非 latest

更完整的编写指南见附录:Dockerfile 最佳实践

延伸阅读


📝 发现错误或有改进建议? 欢迎提交 IssuePR