首页/云/Docker 容器速查/docker build --no-cache 全量重建
镜像与构建107 条

docker build --no-cache 全量重建

跳过所有层缓存重新执行每条指令,用于排除缓存干扰;与 --pull 组合可同时刷新基础镜像。

Docker 容器速查云更新于 2026-10-13

--no-cache 是什么

docker build --no-cache 跳过所有层缓存,逐条指令重新执行;与 --pull 组合时可同时刷新基础镜像。它主要用于排除缓存带来的干扰,日常构建不必每次都加,代价是明显增加的构建时间。

基本信息

用途禁用层缓存,全量重建
语法docker build --no-cache --pull -t 名称 .
与 --pull 的差别--no-cache 不管基础镜像是否更新,只有 --pull 才会拉新版本
buildx 对应docker buildx build --no-cache 同样有效
主要代价构建耗时明显增加

典型使用场景

  • 排查本地能构建、线上构建失败:排除缓存造成的差异
  • 依赖源不稳定留下半成品缓存时,重建一次恢复干净状态
  • 基础镜像更新后确认安全补丁是否真的生效(需配合 --pull)
  • 在 CI 里安排定时的无缓存构建,验证从零构建始终可通过
  • 发布前的最终验证构建,确认产物可复现
  • 排查镜像层里疑似残留旧文件的疑难问题

示例

示例
docker build --no-cache --pull -t app/web:1.0 .     # 全量重建并刷新基础镜像
docker build --no-cache -t app/web:dev .               # 只禁用层缓存
docker buildx build --no-cache --pull --load -t app/web:1.0 .
docker images | grep app/web                           # 确认产物已生成

三个构建开关的区别

参数作用常见误区
--no-cache所有指令重新执行以为它同时会更新基础镜像
--pull拉取基础镜像的新版本单独使用不会重建中间层
两者叠加最彻底的重建耗时最长,适合发布前或定期验证
--target只构建到指定阶段常与无缓存组合用于调试构建阶段
全量重建的耗时与依赖安装规模直接相关,开发阶段频繁使用会明显拖慢节奏,按需使用即可。
缓存造成的典型现象是“明明改了文件,构建结果却没变”,先用 --no-cache 验证一次,再回头检查 .dockerignore 与构建上下文。
在 CI 里做定时无缓存构建能提前暴露依赖源失效、包被下架这类问题,避免发布当天才发现构建不可用。

易错点

  • 把 --no-cache 与 --pull 当成同一件事:只加前者时基础镜像仍是本地旧版本,补丁不会生效
  • 每次构建都加 --no-cache,构建时间成倍增加,团队可能因此绕过流水线
  • 用无缓存构建掩盖真正的原因(上下文中缺文件、忽略规则写错),同一问题下次仍然出现
  • 重建后不清理旧镜像,悬空镜像越积越多,磁盘增长超出预期

数据来源与参考

  • Docker 官方 CLI 参考:docker build --no-cache(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌