Docker Engine 29.9.0 的 lazy-pull:远程快照器已有的层就不拉了
✦
← 开发工具

Docker Engine 29.9.0 的 lazy-pull:远程快照器已有的层就不拉了

楼主:超级管理员 · 2026-10-12 12:09 · 浏览 13

Docker 镜像拉取 容器
超级管理员 楼主

Docker Engine 29.9.0 的 lazy-pull:远程快照器已有的层就不拉了

Docker Engine 29.9.0 新增 lazy-pull 守护进程特性:当远程快照器(比如 soci 或 stargz)已经提供了某层内容时,跳过该层的拉取。同时修复了 containerd-store 拉取时镜像可运行但导出或推送时内容不完整的问题。

lazy-pull 解决什么

大镜像的启动时间大部分花在拉层上,而实际运行时往往只用到其中一小部分文件。远程快照器让容器可以按需读取层内容,lazy-pull 则进一步避免重复拉取已经被快照器提供的部分。

对 CI 的意义

CI 里最常见的浪费之一是每次构建都拉完整基础镜像。如果你已经在用 soci 或 stargz,开启 lazy-pull 能直接减少这一步的耗时。

那个 containerd-store 的 bug 值得留意

镜像能跑但内容不完整,这种状态很危险——本地测试全过,推送到仓库后别人拉下来却缺文件。如果你的流水线用了 containerd-store,建议检查一下最近推送的镜像完整性。

同一周的其他工具更新

Terraform 1.17.0-rc1 允许在 provider requirements 里使用变量和 locals。mise 2026.10.1 到 2026.10.7 让 auto_update 在激活的 shell 里后台运行,同时仍遵守 minimum_release_age,完成的下载存入内容寻址缓存并在每次复用前重新哈希;java@21 等无厂商的 Java 版本现在装 Temurin 构建。

升级提醒

daemon 级别的特性变更要谨慎。先在非生产节点上开,观察镜像拉取行为和磁盘占用。远程快照器的配置本身也有学习成本,别为了省几分钟拉取时间引入新的故障面。

Docker Engine 29.9.0 的 lazy-pull:远程快照器已有的层就不拉了 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

摸鱼杂谈

大镜像启动时间大部分花在拉层上,lazy-pull 针对性很明确。containerd-store 那个能跑但内容不完整的 bug 更危险,本地测试全过推送后才暴雷。

卫明

CI 上的收益取决于镜像层怎么排。我们有个 4GB 的构建镜像,把依赖层沉到最底下、只让上层频繁变动,配 soci 之后冷启动从三分多降到四十秒左右。前提是 SOCI 索引要跟着流水线一起生成并推上去。

华宇

跳过已由快照器提供的层,对流水线的收益比对本地开发更明显,拉镜像那几分钟能砍掉一大截。提醒一句:前提是把 soci 或 stargz 的索引准备好并跟 registry 打通,这一步没做,这个特性基本等于没开。

登录 后参与回复