fix(content): 修正已随上游变化失效的版本事实与镜像引用

深审发现 14 处正文与上游现状不符(另有 4 处在 .agent/ 本地记忆,不入库)。
全部经官方一手源核验,并由独立复核者逐条尝试证伪后保留。

**Docker Content Trust 已从 CLI 移除(本书基线正是 Engine 29.x)**
- 18.6:`docker trust`、`DOCKER_CONTENT_TRUST` 的示例此前标为“历史用法”,
  但未说明命令在 29.x 上根本不存在。Engine 29.0 release notes 原文:
  "Docker Content Trust was removed from the Docker CLI";实测 docker/cli
  的 cli/trust 包在 v28.5.0 返回 200、v29.0.0 返回 404
- 2.3、18.6:DCT 不再是“弃用阶段、时间线待公布”——官方 retired 页已给出
  完整时间表(notary.docker.io 2026-12-08 关闭)
- 注意:`--disable-content-trust` 是 MarkDeprecated(隐藏但仍接受为 no-op),
  不是“不可用”。初版提议写成不可用,经复核纠正后才落地

**etcd 维护分支写反了**
- 15_etcd README/15.1/15.2 均称“3.5 已退出维护窗口”,但 2026-07-23 官方与
  v3.7.1、v3.6.14 同批发布了 v3.5.33,公告称三个分支均在维护;3.4 EOL 也应
  是 2026-06(v3.4.45),非 5 月

**其他上游变化**
- 17.6:containerd 首个 2.x LTS 是 2.0(2024-11-05 起),非 2.3
- 6.4:`sonatype/nexus3:3.69` 这个 tag 从不存在(Sonatype 用三段式),改 3.69.0
- appendix/repo/centos:`rockylinux` 官方镜像已冻结(最后推送 2024-05-30),
  改用官方指引的 `rockylinux/rockylinux`(2026-07-12 仍在更新)
- 6.2/6.3:docs.docker.com/registry/ 已 301 到 retired 页,改指
  distribution.github.io(实测 200)
- 6.1:`docker search centos` 的示例输出补上上游现有的 DEPRECATED 标记

**刻意未改**:`minio/minio` 虽在 Docker Hub 标记 archived,但提议替换的
quay.io/minio/minio 最新 tag 停在 2024-07-31,比 Docker Hub 的 2025-09-07
更旧,照改会把读者引向更陈旧的仓库,留待作者定夺。

验证:check_project_rules 202 文件全过、emphasis 全过、40 测试通过、format 干净。
This commit is contained in:
yeasy
2026-07-28 20:12:47 -07:00
parent 0b526c1674
commit b81816bb07
11 changed files with 15 additions and 15 deletions
+1 -1
View File
@@ -255,7 +255,7 @@ someuser/myapp # ⚠️ 需要评估
#### 镜像签名
当前更推荐使用 Sigstore / Notation 体系进行镜像签名与验证`Docker Content Trust (DCT)` 进入弃用阶段Docker 官方说明最早一批 DCT 签名证书自 2025 8 8 日起开始过期建议镜像发布者迁移到 SigstoreNotation 等方案完整弃用时间线仍以 Docker 后续公告为准不建议把 DCT 作为新项目方案
当前更推荐使用 Sigstore / Notation 体系进行镜像签名与验证`Docker Content Trust (DCT)` 被正式退役 Docker Engine 29.0 DCT 已从 Docker CLI 中移除`docker trust` 子命令不再随 CLI 发布仅能作为独立插件自行构建`docker push``docker pull``docker build``docker run` 等命令上的 `--disable-content-trust` 选项虽仍可解析但已标记为废弃且不再有实际作用Docker 官方的 Notary v1 服务 `notary.docker.io` 也将于 2026 12 8 日完全关闭最早一批 DCT 签名证书自 2025 8 8 日起开始过期Docker 建议镜像发布者迁移到 SigstoreNotation 等方案不建议把 DCT 作为新项目方案
> 注意Cosign 默认会把签名推送回镜像所在仓库请使用你有推送权限的镜像地址
+1 -1
View File
@@ -28,7 +28,7 @@ Docker Hub 是 Docker 的中央镜像仓库,通过它您可以轻松地分享
```bash
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL
centos The official build of CentOS. 7000+ [OK]
centos DEPRECATED; The official build of CentOS. 7000+ [OK]
```
> **技巧**始终优先使用 `OFFICIAL` 标记为 `[OK]` 的镜像安全性更有保障
+1 -1
View File
@@ -4,7 +4,7 @@
本节介绍如何使用本地仓库
[Docker Registry](https://docs.docker.com/registry/) 是官方提供的工具,可以用于构建私有的镜像仓库。本文示例沿用 [distribution/distribution](https://github.com/distribution/distribution) v2.x 兼容路径;新生产部署应评估 Distribution 3.x,并核对配置路径、迁移说明和生态兼容性。
[Docker Registry](https://distribution.github.io/distribution/) 是官方提供的工具,可以用于构建私有的镜像仓库。本文示例沿用 [distribution/distribution](https://github.com/distribution/distribution) v2.x 兼容路径;新生产部署应评估 Distribution 3.x,并核对配置路径、迁移说明和生态兼容性。
### 6.2.1 安装运行 docker-registry
+1 -1
View File
@@ -215,4 +215,4 @@ no basic auth credentials
### 6.3.8 注意事项
如果你本机占用了 `443` 端口你可以配置 [Nginx 代理](https://docs.docker.com/registry/recipes/nginx/),这里不再赘述。
如果你本机占用了 `443` 端口你可以配置 [Nginx 代理](https://distribution.github.io/distribution/recipes/nginx/),这里不再赘述。
+2 -2
View File
@@ -8,10 +8,10 @@
$ docker run -d --name nexus3 --restart=always \
-p 8081:8081 \
--mount src=nexus-data,target=/nexus-data \
sonatype/nexus3:3.69
sonatype/nexus3:3.69.0
```
> **版本说明**使用 `sonatype/nexus3:3.69` 指定稳定的 Nexus 版本使用具体版本号而非 `latest` 可以避免意外升级带来的不兼容问题
> **版本说明**使用 `sonatype/nexus3:3.69.0` 指定稳定的 Nexus 版本使用具体版本号而非 `latest` 可以避免意外升级带来的不兼容问题
首次运行需等待 3-5 分钟你可以使用 `docker logs nexus3 -f` 查看日志
```bash
+1 -1
View File
@@ -1,6 +1,6 @@
## 15.1 简介
> **版本说明** 本章内容基于 etcd 3.5 系列版本编写官方维护最新两个次版本2026 7 etcd 3.7.0 发布后为 3.6 3.73.5 已退出维护窗口请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本信息。
> **版本说明** 本章内容基于 etcd 3.5 系列版本编写etcd 3.7.0 2026 7 发布官方仍在维护 3.53.63.7 三个发布分支请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本信息。
如图 15-1 所示etcd 项目使用该标识
+1 -1
View File
@@ -4,7 +4,7 @@
`etcd` 基于 `Go` 语言实现因此用户可以从[项目主页](https://github.com/etcd-io/etcd)下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 `Docker` 镜像文件来体验。
> 注意etcd 官方仅维护最新两个次版本2026 7 etcd 3.7.0 发布后为 3.6 3.7etcd 3.4 2026 5 月结束支持EOL3.5 也已退出维护窗口仍在使用的用户应尽快升级本章示例基于 etcd `3.5.x` 版本编写etcd 3.6.x/3.7.x 可用于新部署请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本。
> 注意etcd 3.7.0 2026 7 发布官方仍在维护 3.53.63.7 三个发布分支etcd 3.4 2026 6 v3.4.45 结束支持EOL仍在使用的用户应尽快升级本章示例基于 etcd `3.5.x` 版本编写etcd 3.6.x/3.7.x 可用于新部署请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本。
### 15.2.1 二进制文件方式下载
+1 -1
View File
@@ -2,7 +2,7 @@
`etcd` `CoreOS` 团队发起的一个管理配置信息和服务发现 (`Service Discovery`) 的项目在这一章里面我们将基于 `etcd 3.5 系列`版本介绍该项目的目标安装和使用以及实现的技术
> **版本说明** 本章示例基于 etcd 3.5 系列版本编写etcd 官方维护最新两个次版本2026 7 etcd 3.7.0 发布后为 3.6 3.73.5 已退出维护窗口请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本信息。
> **版本说明** 本章示例基于 etcd 3.5 系列版本编写etcd 3.7.0 2026 7 发布官方仍在维护 3.53.63.7 三个发布分支请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本信息。
## 本章内容
+1 -1
View File
@@ -41,7 +41,7 @@ Kubernetes 作为一个容器编排系统,为了屏蔽底层不同容器运行
- 早期版本中Kubernetes 默认使用 docker 作为运行时通过一个名为 `dockershim` 的桥接组件对接 DockerDocker 再对接 containerd
- 随着 containerd 原生支持了 CRI 插件Kubernetes 开始直接与 containerd 通信去掉了 `dockershim` `dockerd` 的中间层这就是为什么从 Kubernetes 1.24+ 开始弃用 Docker引发了广泛关注实际上 Kubernetes 只是弃用 `dockershim`底层可以使用 containerdCRI-O 等符合 CRI 的运行时参见 [Kubernetes 官方文档](https://kubernetes.io/docs/setup/production-environment/container-runtimes/)。
- containerd 2.0+ 移除了已弃用的 CRI v1alpha2 接口仅保留 CRI v1Kubernetes 1.26+ 仅支持 CRI v1如果集群中仍有依赖 CRI v1alpha2 的组件升级 containerd 2.x 前需先完成迁移containerd 2.3+ 2.x 系列首个 LTS 版本支持从 1.7 LTS 直接升级生产环境推荐使用详见 [containerd 发布说明](https://github.com/containerd/containerd/releases)。
- containerd 2.0+ 移除了已弃用的 CRI v1alpha2 接口仅保留 CRI v1Kubernetes 1.26+ 仅支持 CRI v1如果集群中仍有依赖 CRI v1alpha2 的组件升级 containerd 2.x 前需先完成迁移containerd 2.x 系列中 2.0 2.3 均为 LTS 版本其中 2.3 支持从 1.7 LTS 直接升级生产环境推荐使用详见 [containerd 发布说明](https://github.com/containerd/containerd/releases)。
### 17.6.3 为什么直接使用 containerd
+2 -2
View File
@@ -291,11 +291,11 @@ notation verify myregistry.com/myapp@sha256:<digest>
> **注意DCT 退役时间线**
>
> Docker 已宣布[退役 Content Trust](https://www.docker.com/blog/retiring-docker-content-trust/)Docker Official Images 的部分 DCT 签名证书自 2025 年 8 月起已陆续过期;完整退役节奏应以 Docker 官方公告和你所使用的 registry 服务商文档为准不要把云厂商特定日期直接当作 Docker 全局时间线。
> Docker 已宣布[退役 Content Trust](https://www.docker.com/blog/retiring-docker-content-trust/)Docker Official Images 的部分 DCT 签名证书自 2025 年 8 月起已陆续过期;根据 [Docker 官方退役说明](https://docs.docker.com/retired/)Notary v1 服务 `notary.docker.io` 在 2026 年 7 月、8 月安排若干次 brownout(短时停服演练)之后,于 2026 年 12 月 8 日完全关闭。registry 服务商的具体节奏以其自身文档为准不要把云厂商特定日期直接当作 Docker 全局时间线。
>
> 新项目应优先使用上文介绍的 **Cosign (Sigstore)** registry 原生签名/证明能力现有 DCT 用户应先盘点依赖验证替代方案再制定迁移计划
Docker Content Trust 使用 Notary v1 实现镜像签名 Docker 官方的传统签名解决方案不建议新项目采用
Docker Content Trust 使用 Notary v1 实现镜像签名 Docker 官方的传统签名解决方案不建议新项目采用** Docker Engine 29.0 Docker Content Trust 已从 Docker CLI 中移除**`docker trust` 子命令不再内置官方仅保留为可单独构建的插件`DOCKER_CONTENT_TRUST` 环境变量不再生效`docker push --disable-content-trust` 也仅作为已废弃选项保留不再有实际作用下面的示例仅适用于 Docker Engine 28.x 及更早版本
**历史用法示例不建议新项目采用**
+2 -2
View File
@@ -7,7 +7,7 @@
> **重要提示**CentOS 8 已于 2021 12 31 日停止维护 (EOL)CentOS 7 也已于 2024 6 30 **完全结束支持**Docker Hub 上的 CentOS 官方镜像 **已停止更新** 且存在未修复的安全漏洞
>
> 2026 年了对于任何新项目**强烈建议** 使用以下生产级替代方案
> - [Rocky Linux](https://hub.docker.com/_/rockylinux)CentOS 原创始人发起的社区驱动项目,目前主流为 Rocky Linux 9。
> - [Rocky Linux](https://hub.docker.com/r/rockylinux/rockylinux)CentOS 原创始人发起的社区驱动项目,目前主流为 Rocky Linux 9。
> - [AlmaLinux](https://hub.docker.com/_/almalinux):由 CloudLinux 支持的企业级发行版,提供长期支持。
> - [CentOS Stream](https://quay.io/repository/centos/centos)RHEL 的上游开发分支,镜像已迁移至 Quay.io (适合开发测试,不建议用于生产环境)。
@@ -18,7 +18,7 @@
使用 Rocky Linux 9 替代 (**推荐**)
```bash
$ docker run --name rocky -it rockylinux:9 bash
$ docker run --name rocky -it rockylinux/rockylinux:9 bash
```
使用旧版 CentOS 7 (**仅用于维护旧项目不推荐**)