Fix Chinese curly quote direction

This commit is contained in:
yeasy
2026-04-29 05:21:02 +00:00
parent 9c98e35c62
commit 99c56217f5
9 changed files with 10 additions and 10 deletions
+2 -2
View File
@@ -6,8 +6,8 @@
这是 Dockerfile 使用中最常见的困惑之一简单的答案是 这是 Dockerfile 使用中最常见的困惑之一简单的答案是
- **CMD**定义容器的默认命令如果用户在 `docker run` 时提供命令CMD 会被覆盖 - **CMD**定义容器的默认命令如果用户在 `docker run` 时提供命令CMD 会被覆盖
- **ENTRYPOINT**定义容器的入口脚本通常用于启动应用的某个特定部分 - **ENTRYPOINT**定义容器的入口脚本通常用于启动应用的某个特定部分
**决策树** **决策树**
+1 -1
View File
@@ -39,7 +39,7 @@ $ docker buildx build --sbom=true -t myimage .
> ** 注意与失败模式** > ** 注意与失败模式**
> 要使 SBOM (或其它 attestation 元数据) 成功附着并可见对底层的存储格式有前置要求默认的 classic image store 不支持 manifest list/index 这种存放 attestation 的结构 > 要使 SBOM (或其它 attestation 元数据) 成功附着并可见对底层的存储格式有前置要求默认的 classic image store 不支持 manifest list/index 这种存放 attestation 的结构
> >
> 如果只简单运行上述命令你可能会面临 **命令成功执行但本地镜像中看不到 SBOM** 的体会落差 > 如果只简单运行上述命令你可能会面临 **命令成功执行但本地镜像中看不到 SBOM** 的体会落差
> >
> **正确的解决路径有两条** > **正确的解决路径有两条**
> 1. **推送到远端仓库**使用 `docker buildx build --sbom=true --push -t myimage:tag` SBOM 会正确保存到远端仓库远端 OCI 兼容的镜像仓库能够完整存储这些元数据 > 1. **推送到远端仓库**使用 `docker buildx build --sbom=true --push -t myimage:tag` SBOM 会正确保存到远端仓库远端 OCI 兼容的镜像仓库能够完整存储这些元数据
+1 -1
View File
@@ -8,7 +8,7 @@
Skopeo 是一个由 Red Hat 赞助开源的命令行工具它可以在不需要运行容器守护进程 Docker Daemon的前提下对容器镜像进行极其高效的操作和管理包括检查复制删除和签名等操作 Skopeo 是一个由 Red Hat 赞助开源的命令行工具它可以在不需要运行容器守护进程 Docker Daemon的前提下对容器镜像进行极其高效的操作和管理包括检查复制删除和签名等操作
Skopeo 最大的特点是其可以在不将镜像拉取到本地的情况下直接在远端 Registry镜像仓库之间完成检查和搬运从而大幅度节省带宽和磁盘空间这也是它在容器运维和分发领域非常受欢迎的原因 Skopeo 最大的特点是其可以在不将镜像拉取到本地的情况下直接在远端 Registry镜像仓库之间完成检查和搬运从而大幅度节省带宽和磁盘空间这也是它在容器运维和分发领域非常受欢迎的原因
### 17.5.2 核心特性 ### 17.5.2 核心特性
+1 -1
View File
@@ -40,7 +40,7 @@
Kubernetes 作为一个容器编排系统为了屏蔽底层不同容器运行时的实现差异引入了 CRIContainer Runtime Interface标准 Kubernetes 作为一个容器编排系统为了屏蔽底层不同容器运行时的实现差异引入了 CRIContainer Runtime Interface标准
- 早期版本中Kubernetes 默认使用 docker 作为运行时通过一个名为 `dockershim` 的桥接组件对接 DockerDocker 再对接 containerd - 早期版本中Kubernetes 默认使用 docker 作为运行时通过一个名为 `dockershim` 的桥接组件对接 DockerDocker 再对接 containerd
- 随着 containerd 原生支持了 CRI 插件Kubernetes 开始直接与 containerd 通信去掉了 `dockershim` `dockerd` 的中间层这就是为什么从 Kubernetes 1.24+ 开始弃用 Docker引发了广泛关注实际上 Kubernetes 只是弃用 `dockershim`底层依然在使用从 Docker 基因中诞生的 containerd参见 [Kubernetes 官方文档](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd)。 - 随着 containerd 原生支持了 CRI 插件Kubernetes 开始直接与 containerd 通信去掉了 `dockershim` `dockerd` 的中间层这就是为什么从 Kubernetes 1.24+ 开始弃用 Docker引发了广泛关注实际上 Kubernetes 只是弃用 `dockershim`底层依然在使用从 Docker 基因中诞生的 containerd参见 [Kubernetes 官方文档](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd)。
- 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.3+ 2.x 系列首个 LTS 版本支持从 1.7 LTS 直接升级生产环境推荐使用详见 [containerd 发布说明](https://github.com/containerd/containerd/releases)。
### 17.6.3 为什么直接使用 containerd ### 17.6.3 为什么直接使用 containerd
+1 -1
View File
@@ -10,7 +10,7 @@
尽管这种方式在性能和启动速度上拥有巨大优势但也带来了一个显著的缺点**隔离性Isolation不足**如果某个容器内的恶意进程利用了宿主机内核的漏洞完成了越狱Privilege Escalation它将对整个宿主机以及其上运行的所有其他容器造成毁灭性威胁 尽管这种方式在性能和启动速度上拥有巨大优势但也带来了一个显著的缺点**隔离性Isolation不足**如果某个容器内的恶意进程利用了宿主机内核的漏洞完成了越狱Privilege Escalation它将对整个宿主机以及其上运行的所有其他容器造成毁灭性威胁
如果在公有云环境多租户场景或运行不可信的第三方代码时共享内核显然是不够安全的为了解决这一问题社区推出了安全容器Secure Containers/Sandboxed Containers的概念安全容器的核心理念是提供类似虚拟机的强隔离性同时保持类似容器的轻量快速启动和标准化管理 如果在公有云环境多租户场景或运行不可信的第三方代码时共享内核显然是不够安全的为了解决这一问题社区推出了安全容器Secure Containers/Sandboxed Containers的概念安全容器的核心理念是提供类似虚拟机的强隔离性同时保持类似容器的轻量快速启动和标准化管理
### 17.7.2 什么是 Kata Containers ### 17.7.2 什么是 Kata Containers
+1 -1
View File
@@ -14,7 +14,7 @@ Docker 守护进程在启动容器时,会在后台为容器创建一套独立
尽管命名空间提供了很好的隔离性但我们必须认识到**所有的容器依然共享同一个宿主机的 Linux 内核** 尽管命名空间提供了很好的隔离性但我们必须认识到**所有的容器依然共享同一个宿主机的 Linux 内核**
这意味着一旦宿主机的内核存在提权漏洞如著名的 Dirty COW 漏洞攻击者有可能通过突破 Namespace 的限制直接在内核层面执行恶意代码从而实现容器逃逸 这意味着一旦宿主机的内核存在提权漏洞如著名的 Dirty COW 漏洞攻击者有可能通过突破 Namespace 的限制直接在内核层面执行恶意代码从而实现容器逃逸
> [!WARNING] > [!WARNING]
> 为了缓解内核漏洞带来的威胁生产环境务必保持宿主机 Linux 内核的及时修补与更新或者借助诸如 gVisorKata Containers 等提供了独立内核的安全容器技术同时需要及时修补容器运行时 runC的漏洞2025 11 月披露的一系列 runC 容器逃逸漏洞CVE-2025-31133CVE-2025-52565CVE-2025-52881就表明即使内核保持更新运行时层的缺陷仍然可能导致容器隔离被突破 > 为了缓解内核漏洞带来的威胁生产环境务必保持宿主机 Linux 内核的及时修补与更新或者借助诸如 gVisorKata Containers 等提供了独立内核的安全容器技术同时需要及时修补容器运行时 runC的漏洞2025 11 月披露的一系列 runC 容器逃逸漏洞CVE-2025-31133CVE-2025-52565CVE-2025-52881就表明即使内核保持更新运行时层的缺陷仍然可能导致容器隔离被突破
+1 -1
View File
@@ -9,7 +9,7 @@
- **容器监控** Prometheus 为主讲解如何采集和展示容器性能指标 - **容器监控** Prometheus 为主讲解如何采集和展示容器性能指标
- **日志管理** ELK (Elasticsearch, Logstash, Kibana) 套件为例介绍集中式日志收集平台 - **日志管理** ELK (Elasticsearch, Logstash, Kibana) 套件为例介绍集中式日志收集平台
为了让读者能够在生产环境中真正用起来本章会补齐以下最小闭环 为了让读者能够在生产环境中真正用起来本章会补齐以下最小闭环
* 关键指标与日志的验证方法 * 关键指标与日志的验证方法
* 常见故障排查路径 * 常见故障排查路径
+1 -1
View File
@@ -5,7 +5,7 @@
* **指标监控** Prometheus + Grafana 为主完成指标采集存储与可视化 * **指标监控** Prometheus + Grafana 为主完成指标采集存储与可视化
* **日志管理** EFK/ELK 为例完成容器日志的集中采集检索与分析 * **日志管理** EFK/ELK 为例完成容器日志的集中采集检索与分析
生产环境中建议将可观测性当成一个完整闭环**采集 -> 存储 -> 展示 -> 告警 -> 排错 -> 容量治理** 生产环境中建议将可观测性当成一个完整闭环**采集 -> 存储 -> 展示 -> 告警 -> 排错 -> 容量治理**
## 扩展阅读Docker 日志驱动 ## 扩展阅读Docker 日志驱动
+1 -1
View File
@@ -12,7 +12,7 @@
## DevOps 背景介绍 ## DevOps 背景介绍
DevOps 是一种重要的开发和运维文化强调开发团队和运维团队之间的协作和自动化它致力于通过自动化和流程优化加快软件交付速度同时提高系统的稳定性和可靠性Docker 作为容器化技术的领导者已成为现代 DevOps 工作流中不可或缺的工具通过容器化应用开发团队可以确保一次构建处处运行消除开发测试和生产环境的差异大大简化了部署流程 DevOps 是一种重要的开发和运维文化强调开发团队和运维团队之间的协作和自动化它致力于通过自动化和流程优化加快软件交付速度同时提高系统的稳定性和可靠性Docker 作为容器化技术的领导者已成为现代 DevOps 工作流中不可或缺的工具通过容器化应用开发团队可以确保一次构建处处运行消除开发测试和生产环境的差异大大简化了部署流程
## Docker DevOps 中的角色 ## Docker DevOps 中的角色