diff --git a/02_basic_concept/2.1_image.md b/02_basic_concept/2.1_image.md index 766437b..215b420 100644 --- a/02_basic_concept/2.1_image.md +++ b/02_basic_concept/2.1_image.md @@ -172,7 +172,7 @@ registry.example.com/myproject/myapp:v1.2.3 ## 简写(使用 Docker Hub) -nginx:1.25 +nginx:1.30 ubuntu:24.04 ## 省略标签(默认使用 latest) diff --git a/02_basic_concept/2.3_repository.md b/02_basic_concept/2.3_repository.md index c854a5c..b7a2d1d 100644 --- a/02_basic_concept/2.3_repository.md +++ b/02_basic_concept/2.3_repository.md @@ -1,6 +1,6 @@ ## 2.3 仓库 -> **版本说明**:本节示例基于 Docker v29.x 和常见镜像版本编写。示例中的版本号(如 `nginx:1.25`、`mysql:8.0`、`mysql:5.7` 等)为演示用途。实际使用时请访问 [Docker Hub 官方页面](https://hub.docker.com) 或相应镜像的发布页确认最新可用版本和标签。 +> **版本说明**:本节示例基于 Docker v29.x 和常见镜像版本编写。示例中的版本号(如 `nginx:1.30`、`mysql:8.0`、`mysql:5.7` 等)为演示用途。实际使用时请访问 [Docker Hub 官方页面](https://hub.docker.com) 或相应镜像的发布页确认最新可用版本和标签。 Docker Registry 是镜像分发和管理的核心组件。本节将介绍 Registry 的基本概念、公共和私有服务的选择,以及镜像的安全管理。 @@ -73,7 +73,7 @@ registry.example.com/mycompany/myapp:v1.2.3 ## Docker Hub 官方镜像(省略 registry 和用户名) -nginx:1.25 +nginx:1.30 ubuntu:24.04 ## Docker Hub 用户镜像 @@ -217,7 +217,7 @@ $ docker login registry.example.com # 登录其他 Registry ## 拉取镜像 -$ docker pull nginx:1.25 +$ docker pull nginx:1.30 ## 标记镜像(准备推送) diff --git a/07_dockerfile/7.12_healthcheck.md b/07_dockerfile/7.12_healthcheck.md index 5f8d4a2..7d2a9d7 100644 --- a/07_dockerfile/7.12_healthcheck.md +++ b/07_dockerfile/7.12_healthcheck.md @@ -34,7 +34,7 @@ Starting ──成功──> Healthy ──失败N次──> Unhealthy #### Web 服务检查 ```docker -# 注:nginx 镜像推荐使用具体的版本标签(如 nginx:1.25-alpine) +# 注:nginx 镜像推荐使用具体的版本标签(如 nginx:1.30-alpine) FROM nginx RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* diff --git a/07_dockerfile/7.17_multistage_builds.md b/07_dockerfile/7.17_multistage_builds.md index e8748d3..fbd0c8e 100644 --- a/07_dockerfile/7.17_multistage_builds.md +++ b/07_dockerfile/7.17_multistage_builds.md @@ -176,5 +176,5 @@ $ docker build --target builder -t username/imagename:tag . 上面例子中我们使用 `COPY --from=0 /go/src/github.com/go/helloworld/app .` 从上一阶段的镜像中复制文件,我们也可以复制任意镜像中的文件。 ```docker -COPY --from=nginx:1.25-alpine /etc/nginx/nginx.conf /nginx.conf +COPY --from=nginx:1.30-alpine /etc/nginx/nginx.conf /nginx.conf ``` diff --git a/07_dockerfile/7.18_multistage_builds_laravel.md b/07_dockerfile/7.18_multistage_builds_laravel.md index 15d1596..6fdc79e 100644 --- a/07_dockerfile/7.18_multistage_builds_laravel.md +++ b/07_dockerfile/7.18_multistage_builds_laravel.md @@ -128,8 +128,8 @@ RUN set -x ; cd ${LARAVEL_PATH} \ ### 7.18.5 最后一个阶段构建 NGINX 镜像 ```docker -# 注:nginx 镜像推荐使用具体的版本标签(如 nginx:1.25-alpine) -FROM nginx:1.25-alpine as nginx +# 注:nginx 镜像推荐使用具体的版本标签(如 nginx:1.30-alpine) +FROM nginx:1.30-alpine as nginx ARG LARAVEL_PATH=/app/laravel @@ -179,7 +179,7 @@ $ docker run -dit --rm --network=laravel -p 8080:80 my/nginx 完整的 `Dockerfile` 文件如下。 ```docker -# 注:生产环境推荐使用具体的版本标签,如 node:20-alpine、composer:2.x、php:8.3-fpm-alpine、nginx:1.25-alpine +# 注:生产环境推荐使用具体的版本标签,如 node:20-alpine、composer:2.x、php:8.3-fpm-alpine、nginx:1.30-alpine FROM node:20-alpine as frontend COPY package.json /app/ @@ -229,7 +229,7 @@ RUN set -x ; cd ${LARAVEL_PATH} \ && chmod -R 777 storage \ && php artisan package:discover -FROM nginx:1.25-alpine as nginx +FROM nginx:1.30-alpine as nginx ARG LARAVEL_PATH=/app/laravel diff --git a/07_dockerfile/multistage_example/laravel/Dockerfile b/07_dockerfile/multistage_example/laravel/Dockerfile index 6d1da0c..82c97d5 100644 --- a/07_dockerfile/multistage_example/laravel/Dockerfile +++ b/07_dockerfile/multistage_example/laravel/Dockerfile @@ -47,7 +47,7 @@ RUN set -x ; cd ${LARAVEL_PATH} \ && chmod -R 777 storage \ && php artisan package:discover -FROM nginx:1.25-alpine as nginx +FROM nginx:1.30-alpine as nginx ARG LARAVEL_PATH=/app/laravel diff --git a/10_buildx/README.md b/10_buildx/README.md index df7a0ea..cb40ee1 100644 --- a/10_buildx/README.md +++ b/10_buildx/README.md @@ -2,7 +2,7 @@ Docker Buildx 是一个 docker CLI 插件,其扩展了 docker 命令,支持 [Moby BuildKit](10.1_buildkit.md) 提供的功能。提供了与 docker build 相同的用户体验,并增加了许多新功能。 -> Buildx 需要 Docker v19.03+ (Docker 19.03 及以上版本)。在较新版本中已更常用且功能更完整。 +> Buildx 需要 Docker v23.0+(该版本起 BuildKit 成为默认构建引擎)。推荐使用 Docker v28 及以上版本以获得最完整的 Buildx 功能支持。 ## 本章内容 diff --git a/13_kubernetes_concepts/13.2_concepts.md b/13_kubernetes_concepts/13.2_concepts.md index 9ff6d13..7082fdf 100644 --- a/13_kubernetes_concepts/13.2_concepts.md +++ b/13_kubernetes_concepts/13.2_concepts.md @@ -35,7 +35,7 @@ ##### 节点状态 -节点的状态主要是用来描述处于 `Running` 的节点。当前可用的有 `NodeReachable` 和 `NodeReady`。以后可能会增加其他状态。`NodeReachable` 表示集群可达。`NodeReady` 表示 kubelet 返回 Status Ok 并且 HTTP 状态检查健康。 +节点的状态通过一组条件(Conditions)来描述。主要条件包括 `Ready`(kubelet 健康且可以接收 Pod)、`MemoryPressure`(内存不足)、`DiskPressure`(磁盘不足)和 `PIDPressure`(进程数过多)等。其中 `Ready` 条件最为关键:值为 `True` 表示节点健康可调度,`False` 表示节点异常,`Unknown` 表示节点控制器超过一定时间未收到心跳。 #### 节点管理 diff --git a/15_etcd/15.1_intro.md b/15_etcd/15.1_intro.md index edb48ac..148377a 100644 --- a/15_etcd/15.1_intro.md +++ b/15_etcd/15.1_intro.md @@ -1,6 +1,6 @@ ## 15.1 简介 -> **版本说明:** 本章内容基于 etcd 3.5 系列版本编写(当前最新为 v3.5.x)。请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本信息。 +> **版本说明:** 本章内容基于 etcd 3.5 系列版本编写。官方维护最新两个次版本(当前为 3.5 和 3.6)。请访问 [etcd 官方发布页](https://github.com/etcd-io/etcd/releases) 获取最新版本信息。 如图 15-1 所示,etcd 项目使用该标识。 diff --git a/20_cases_os/20.3_debian.md b/20_cases_os/20.3_debian.md index 50d64cb..530107d 100644 --- a/20_cases_os/20.3_debian.md +++ b/20_cases_os/20.3_debian.md @@ -25,7 +25,7 @@ Debian 是一个常用的基础镜像。 ```bash $ docker run -it debian bash root@668e178d8d69:/# cat /etc/issue -Debian GNU/Linux 12 +Debian GNU/Linux 13 ``` `Debian` 镜像很适合作为基础镜像,构建自定义镜像。 @@ -43,18 +43,18 @@ Debian GNU/Linux 12 Ubuntu 是目前最流行的 Linux 发行版之一。 -下面以 `ubuntu:24.04` 为例,演示如何使用该镜像安装一些常用软件。 +下面以 `ubuntu:26.04` 为例,演示如何使用该镜像安装一些常用软件。 首先使用 `-ti` 参数启动容器,登录 `bash`,查看 `ubuntu` 的发行版本号。 ```bash -$ docker run -ti ubuntu:24.04 /bin/bash +$ docker run -ti ubuntu:26.04 /bin/bash root@7d93de07bf76:/# cat /etc/os-release -PRETTY_NAME="Ubuntu 24.04 LTS" +PRETTY_NAME="Ubuntu 26.04 LTS" NAME="Ubuntu" -VERSION_ID="24.04" -VERSION="24.04 LTS (Noble Numbat)" -VERSION_CODENAME=noble +VERSION_ID="26.04" +VERSION="26.04 LTS (Resolute Raccoon)" +VERSION_CODENAME=resolute ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" diff --git a/20_cases_os/20.4_centos.md b/20_cases_os/20.4_centos.md index 815dbfc..320f5bc 100644 --- a/20_cases_os/20.4_centos.md +++ b/20_cases_os/20.4_centos.md @@ -50,7 +50,7 @@ latest: Pulling from library/fedora Digest: sha256:64a02df6aac27d1200c2572fe4b9949f1970d05f74d367ce4af994ba5dc3669e Status: Downloaded newer image for fedora:latest [root@196ca341419b /]# cat /etc/redhat-release -Fedora release 39 (Thirty Nine) +Fedora release 43 (Forty Three) ``` ### 20.4.3 相关资源 diff --git a/20_cases_os/README.md b/20_cases_os/README.md index 3d1db69..6fefc60 100644 --- a/20_cases_os/README.md +++ b/20_cases_os/README.md @@ -8,7 +8,7 @@ 本章示例中使用的操作系统镜像版本遵循以下原则: -- **Alpine、Debian、Ubuntu、CentOS** 等操作系统镜像采用大版本或次版本标签(如 `alpine:3.21`、`ubuntu:24.04`),避免使用 `latest` 标签确保构建的可再现性 +- **Alpine、Debian、Ubuntu、CentOS** 等操作系统镜像采用大版本或次版本标签(如 `alpine:3.21`、`ubuntu:26.04`),避免使用 `latest` 标签确保构建的可再现性 - **OS 大版本保留**,以便获得最新的安全补丁和修复 - 在生产环境中,建议根据实际需求选择合适的版本,并定期更新以获得安全修复 diff --git a/21_case_devops/21.1_devops_workflow.md b/21_case_devops/21.1_devops_workflow.md index f542750..e24be4a 100644 --- a/21_case_devops/21.1_devops_workflow.md +++ b/21_case_devops/21.1_devops_workflow.md @@ -54,9 +54,9 @@ unit_test: build_image: stage: build - image: docker:27 + image: docker:29 services: - - docker:27-dind + - docker:29-dind script: - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . diff --git a/appendix/learning_roadmap.md b/appendix/learning_roadmap.md index c747b20..a02ba66 100644 --- a/appendix/learning_roadmap.md +++ b/appendix/learning_roadmap.md @@ -587,7 +587,7 @@ A(要点): A(要点): ```text 1. 选择合适的基础镜像: - scratch < alpine:3.17 < python:3.14-slim < python:3.14 + scratch < alpine:3.21 < python:3.14-slim < python:3.14 2. 多阶段构建: - 构建阶段只保留编译工具