From 20a3479f8aa472627e2b99c6cbbc48660eae0039 Mon Sep 17 00:00:00 2001 From: yeasy Date: Sat, 25 Apr 2026 15:02:24 +0000 Subject: [PATCH] Add Docker Scout, remove deprecated type_name --- 15_etcd/15.2_install.md | 10 +++++----- 15_etcd/15.3_cluster.md | 6 +++--- 18_security/18.6_image_security.md | 30 ++++++++++++++++++++++-------- 19_observability/19.2_elk.md | 1 - 4 files changed, 30 insertions(+), 17 deletions(-) diff --git a/15_etcd/15.2_install.md b/15_etcd/15.2_install.md index 0f02133..0850e21 100644 --- a/15_etcd/15.2_install.md +++ b/15_etcd/15.2_install.md @@ -13,12 +13,12 @@ 例如,使用 `curl` 工具下载压缩包,并解压。 ```bash -$ curl -L https://github.com/etcd-io/etcd/releases/download/v3.5.29/etcd-v3.5.29-linux-amd64.tar.gz -o etcd-v3.5.29-linux-amd64.tar.gz +$ curl -L https://github.com/etcd-io/etcd/releases/download/v3.5.21/etcd-v3.5.21-linux-amd64.tar.gz -o etcd-v3.5.21-linux-amd64.tar.gz ## 国内用户可选择就近的网络加速方式(以可用镜像站为准) -$ tar xzvf etcd-v3.5.29-linux-amd64.tar.gz -$ cd etcd-v3.5.29-linux-amd64 +$ tar xzvf etcd-v3.5.21-linux-amd64.tar.gz +$ cd etcd-v3.5.21-linux-amd64 ``` 解压后,可以看到文件包括 @@ -65,8 +65,8 @@ $ docker run \ -p 2379:2379 \ -p 2380:2380 \ --mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \ ---name etcd-gcr-v3.5.29 \ -quay.io/coreos/etcd:v3.5.29 \ +--name etcd-gcr-v3.5.21 \ +quay.io/coreos/etcd:v3.5.21 \ /usr/local/bin/etcd \ --name s1 \ --data-dir /etcd-data \ diff --git a/15_etcd/15.3_cluster.md b/15_etcd/15.3_cluster.md index f9ac232..82acea4 100644 --- a/15_etcd/15.3_cluster.md +++ b/15_etcd/15.3_cluster.md @@ -8,7 +8,7 @@ services: node1: - image: quay.io/coreos/etcd:v3.5.29 + image: quay.io/coreos/etcd:v3.5.21 volumes: - node1-data:/etcd-data expose: @@ -40,7 +40,7 @@ services: - docker-etcd node2: - image: quay.io/coreos/etcd:v3.5.29 + image: quay.io/coreos/etcd:v3.5.21 volumes: - node2-data:/etcd-data networks: @@ -72,7 +72,7 @@ services: - docker-etcd node3: - image: quay.io/coreos/etcd:v3.5.29 + image: quay.io/coreos/etcd:v3.5.21 volumes: - node3-data:/etcd-data networks: diff --git a/18_security/18.6_image_security.md b/18_security/18.6_image_security.md index 2d21e99..5131ec2 100644 --- a/18_security/18.6_image_security.md +++ b/18_security/18.6_image_security.md @@ -94,16 +94,27 @@ snyk container test docker-archive://image.tar # 监控仓库 snyk monitor --docker ``` +此外,Docker 官方提供的 **Docker Scout**(`docker scout` CLI)可以直接在 Docker Desktop 或命令行中对镜像进行漏洞扫描和依赖分析,适合日常开发流程中快速检查: + +```bash +# 扫描本地镜像 +$ docker scout cves myapp:latest + +# 查看镜像的依赖和漏洞摘要 +$ docker scout quickview myapp:latest +``` + **工具对比表:** -| 特性 | Trivy | Grype | Snyk | -|------|-------|-------|------| -| 零依赖 | ✓ | ✗ | ✗ | -| 离线模式 | ✓ | ✓ | ✗ | -| 许可证扫描 | ✗ | ✓ | ✓ | -| 自动修复 | ✗ | ✗ | ✓ | -| 开源免费 | ✓ | ✓ | 部分 | -| IDE 集成 | ✓ | ✓ | ✓ | +| 特性 | Docker Scout | Trivy | Grype | Snyk | +|------|-------------|-------|-------|------| +| Docker 集成 | ✓(原生) | 需安装 | 需安装 | 需安装 | +| 零依赖 | ✗ | ✓ | ✗ | ✗ | +| 离线模式 | ✗ | ✓ | ✓ | ✗ | +| 许可证扫描 | ✓ | ✗ | ✓ | ✓ | +| 自动修复建议 | ✓ | ✗ | ✗ | ✓ | +| 开源免费 | 部分 | ✓ | ✓ | 部分 | +| IDE 集成 | ✓ | ✓ | ✓ | ✓ | ### 18.6.2 SBOM(软件物料清单)生成与管理 @@ -530,6 +541,7 @@ push: **Q: 扫描报告中有过时的 CVE,如何处理?** A: 某些 CVE 可能已经被修复但数据库未更新,可以: + - 手动验证安全补丁是否已应用 - 使用工具的忽略列表功能(如 Trivy 的 `.trivyignore`) - 定期更新扫描工具和漏洞数据库 @@ -537,6 +549,7 @@ A: 某些 CVE 可能已经被修复但数据库未更新,可以: **Q: 如何平衡镜像大小和安全性?** A: + - 使用多阶段构建减少最终镜像大小 - 使用精简基础镜像(Alpine、Distroless) - 定期更新依赖而不是一味求小 @@ -545,6 +558,7 @@ A: **Q: 如何管理和轮换签名密钥?** A: + - 在密钥管理系统(如 HashiCorp Vault)中存储密钥 - 定期轮换密钥(建议每 90 天) - 使用 Keyless 签名消除密钥管理复杂性 diff --git a/19_observability/19.2_elk.md b/19_observability/19.2_elk.md index 7f0350c..28b8bdc 100644 --- a/19_observability/19.2_elk.md +++ b/19_observability/19.2_elk.md @@ -94,7 +94,6 @@ networks: logstash_prefix docker logstash_dateformat %Y%m%d include_tag_key true - type_name access_log tag_key @log_name flush_interval 1s