本章小结
本章详细介绍了 Dockerfile 的所有核心指令,以下是各指令要点的速查表。
指令
作用
关键要点
FROM
指定基础镜像
必须是第一条构建指令;只有全局 ARG 能写在它之前
RUN
在新层执行命令
合并命令、清理缓存以减小体积
COPY
复制文件
优先使用,支持 --from
ADD
更高级的复制
自动解压 tar;公开远程 artifact 应配合 --checksum
CMD
容器启动默认命令
可被 docker run 参数覆盖
ENTRYPOINT
容器入口点
固定启动命令,CMD 作为默认参数
ENV
设置环境变量
构建时 + 运行时均生效
ARG
构建参数
仅构建时生效,FROM 后需重新声明
VOLUME
定义匿名卷
运行时挂载会遮蔽镜像内目录;构建后续写入语义依赖 builder
EXPOSE
声明端口
仅文档作用,不自动映射
WORKDIR
指定工作目录
替代 RUN cd,目录不存在会自动创建
USER
指定运行用户
用户必须已存在,推荐 gosu
HEALTHCHECK
健康检查
支持 starting/healthy/unhealthy 状态
ONBUILD
延迟执行指令
只继承一次,不可级联
LABEL
添加元数据
推荐 OCI 标准标签,替代 MAINTAINER
SHELL
更改默认 shell
推荐 ["/bin/bash", "-o", "pipefail", "-c"]
生产镜像快速检查清单
在将镜像推向生产之前,建议逐条过一遍以下清单:
更完整的编写指南见附录:Dockerfile 最佳实践。
延伸阅读
使用 Dockerfile 定制镜像:Dockerfile 入门
多阶段构建:优化镜像大小
Dockerfile 最佳实践:编写指南
安全:容器安全实践
Compose 模板文件:Compose 中的配置
最后更新于