首页/云/Docker 容器速查/层缓存原理与指令排序
本包目录(366 条)
基础命令50 条
镜像与构建107 条
网络与存储52 条Compose 编排55 条资源与安全50 条容器排障52 条

层缓存原理与指令排序

每条指令按「文本 + 相关文件内容 + 父层」计算缓存键:命中就跳过执行;把低频变更放前面、高频变更放后面是加速构建的核心。

Docker 容器速查云更新于 2026-10-12
缓存键指令文本、复制文件内容、上一层的哈希
排序原则系统依赖 → 应用依赖 → 源码
相关开关--no-cache / --pull / cache-from

示例

示例
# 依赖先复制:源码变化不影响依赖层
COPY package.json package-lock.json ./
RUN npm ci
COPY . .

# 反面写法:任意源码改动都会重装依赖
COPY . .
RUN npm ci
缓存统计在构建日志里以 CACHED 标注;--progress=plain 能看到每步命中情况。

易错点

  • RUN 里写 date/随机数会让该层永不命中并连带后面全部失效
  • 缓存命中不代表正确性:依赖更新后记得用 --no-cache 或 --pull 做一次全量验证构建

数据来源与参考

  • Docker 官方文档:Build cache(docs.docker.com/build/cache)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌