综合 Docker Engine 28.5 升级笔记:rootless 网络回退 pasta,以及一批 API 与 Go-SDK 弃用

2026-09-28 21:04:35

Docker Engine 28.5 升级笔记:rootless 网络回退 pasta,以及一批 API 与 Go-SDK 弃用

来源:Docker Engine version 28 release notes、moby/moby 28.5.x releases。

dockerd-rootless.sh 的两处行为变化

28.5.x 的 Bug fixes and enhancements 中包含两条 rootless 脚本的改动:

  • dockerd-rootless.sh 在未安装 slirp4netns 时,会尝试改用 pasta(passt)。
  • dockerd-rootless.sh 拒绝 DOCKERD_ROOTLESS_ROOTLESSKIT_NET=host。

前者意味着 rootless 环境下的用户态网络后端多了一条退路;后者意味着把这个值写进环境变量的启动脚本需要改掉,脚本会直接拒绝。

打包更新

  • BuildKit 更新。
  • Go runtime 更新。
  • runc 更新到 v1.3.3。

28.5.0(2025-10-08 前后)

  • 移除对 legacy CBC cipher suites 的支持。
  • BuildKit 更新到 v0.25.0。
  • Dockerfile syntax 更新到 v1.19.0。

API 变更

  • 弃用 kernel memory TCP accounting 支持(KernelMemoryTCP)。
  • 修复 GET containers/{name}/checkpoints 在没有 checkpoint 时返回 null 而非空 JSON 数组的问题。

28.5.1

  • api/types/image:InspectResponse 的 Parent 与 DockerVersion 字段弃用。
  • api/types/plugin:Config.DockerVersion 字段弃用。

28.5.0 的其他修复

  • docker info 不再对 CLI-plugin 目录里的断链(broken symlinks)打印告警。
  • 修复 stats 在空事件 Actor.ID 上触发的 panic。
  • 修复 Windows 上 IPAM 插件未加载的问题。

Go-SDK 弃用(将于下一版本移除)

  • cli/command/image/build:DefaultDockerfileName、DetectArchiveReader、WriteTempDockerfile、ResolveAndValidateContextPath、IsArchive。
  • opts:ValidateMACAddress、ListOpts.Delete()。
  • cli/command:DockerCli.Apply、ContentTrustEnabled、DefaultVersion、ResolveDefaultContext、WithContentTrustFromEnv、WithContentTrust。
  • cli/manifest/store:IsNotFound()。
  • templates:NewParse()。

这些符号在下一版本会被移除,直接依赖它们的构建脚本和工具链需要提前替换。

升级注意

  • 28.5.2(2025-11-05)本身包含 runc 的安全修复:三个高危漏洞,允许容器逃逸、绕过 runc 对写 /proc 的限制,通过更新 runc 到 v1.3.3 修复。
  • Engine 28 这一代已移除对 legacy CBC cipher suites 的支持。若客户端或镜像仓库只支持旧套件,可能连不上。
  • 涉及 checkpoints、stats 事件处理、docker info 输出解析、插件目录扫描的监控脚本与工具,按上面的修复项核对一下输出格式是否仍被正确解析。
复制全文 生成海报 Docker 容器 运维 API 升级

推荐文章

程序员茄子在线接单