你还在手动检测镜像漏洞?Docker Scout集成测试让安全自动化触手可及

第一章:你还在手动检测镜像漏洞?Docker Scout集成测试让安全自动化触手可及

在现代 DevOps 实践中,容器镜像的安全性常常被忽视,直到生产环境暴露出严重漏洞。Docker Scout 提供了一种无缝集成的解决方案,帮助开发者在构建流程早期自动发现并修复镜像中的已知漏洞。

启用 Docker Scout 的步骤

  • 确保已安装最新版 Docker Desktop(v4.20+)或 CLI 支持 Scout 功能
  • 登录 Docker Hub 账户并进入组织设置,开启 Scout 扫描策略
  • 在项目根目录配置 .dockerignore 文件,避免敏感文件被误打包

使用命令行触发镜像扫描

执行以下命令推送镜像并自动触发 Docker Scout 分析:
# 构建并标记镜像
docker build -t myapp:latest .

# 推送至 Docker Hub(触发 Scout 扫描)
docker push myapp:latest
推送完成后,Docker Scout 将自动分析镜像层,识别 CVE 漏洞、软件包风险和不安全依赖,并在 Docker Hub 仪表板中生成详细报告。

扫描结果关键指标对比

指标高危漏洞中危漏洞建议操作
基础镜像 alpine:3.1803更新 apk 包管理器依赖
基础镜像 ubuntu:20.04512更换为 distroless 或 alpine

集成 CI/CD 流程实现自动化阻断

可在 GitHub Actions 中添加检查步骤,当 Scout 检测到高危漏洞时自动中断部署:
# .github/workflows/build.yml 片段
- name: Check Docker Scout findings
  run: |
    docker scout cves myapp:latest --only-severity critical
  env:
    DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }}
该指令会在存在严重漏洞时返回非零退出码,从而阻止不安全镜像进入生产环境。通过将安全左移,团队能够在开发阶段就掌控风险,真正实现“安全即代码”。

第二章:Docker Scout 核心功能与集成原理

2.1 理解 Docker Scout 的漏洞扫描机制

Docker Scout 通过深度分析镜像的软件成分,识别操作系统包和第三方依赖中的已知漏洞。其核心机制基于与主流漏洞数据库(如CVE)的实时同步,结合镜像层的文件系统遍历,提取出所有可执行文件、库和配置的元信息。
扫描流程概述
  • 镜像推送到仓库后自动触发扫描
  • 解析镜像每一层的文件系统内容
  • 识别安装的软件包及其版本(如 apt、yum、npm 等)
  • 比对公共漏洞源(如 GitHub Advisory Database、NVD)
策略驱动的漏洞评估
{
  "rules": [
    {
      "type": "vulnerability_severity",
      "value": "critical",
      "action": "block_deployment"
    }
  ]
}
该策略配置表示当扫描发现严重等级为“Critical”的漏洞时,将阻止部署。Docker Scout 支持自定义规则,允许团队根据风险偏好调整响应行为。

2.2 镜像元数据收集与依赖分析流程

元数据采集机制
在镜像构建完成后,系统自动提取其基础层信息、标签、创建时间及环境变量等元数据。这些数据通过 Docker Registry API 获取,并以 JSON 格式存储:
{
  "id": "sha256:abc123",
  "parent": "sha256:def456",
  "created": "2023-04-01T12:00:00Z",
  "architecture": "amd64",
  "os": "linux",
  "config": {
    "Env": ["PATH=/usr/local/bin"],
    "Cmd": ["/bin/bash"]
  }
}
该结构为后续依赖关系建模提供基础输入。
依赖关系解析
基于镜像层的父子关系链,系统构建有向无环图(DAG)表示依赖拓扑。使用以下算法遍历所有层级:
  1. 从顶层镜像开始,递归查找每一层的父节点
  2. 记录每层引入的软件包(通过分析 /var/lib/dpkg/status 或 rpm 数据库)
  3. 合并去重后生成完整的依赖清单
镜像层依赖包数量关键组件
base-alpine:3.1812musl, busybox
app-runtime:v123glibc, python3

2.3 与 CI/CD 流水线的无缝集成模式

在现代 DevOps 实践中,配置管理工具需深度嵌入 CI/CD 流水线,以实现基础设施即代码(IaC)的自动化部署与验证。
流水线触发与配置同步
每次 Git 提交可触发 CI 流水线,自动校验配置语法并部署至目标环境。例如,在 GitHub Actions 中定义工作流:

name: Deploy Config
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Validate configuration
        run: ansible-playbook --syntax-check site.yml
      - name: Apply configuration
        run: ansible-playbook site.yml
上述流程确保配置变更经过版本控制、语法检查和自动部署三重保障,提升发布可靠性。
集成测试与回滚机制
通过引入自动化测试阶段,可在预发环境验证服务状态。若检测到异常,结合 Git 标签与流水线策略实现快速回滚,保障系统稳定性。

2.4 实践:在 GitHub Actions 中启用 Scout 扫描

为了在 CI/CD 流程中自动检测代码安全漏洞,可将 GitHub Actions 与 Scout 扫描工具集成。首先,在仓库的 `.github/workflows` 目录下创建一个工作流文件。
name: Scout Scan
on: [push, pull_request]
jobs:
  scout:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Scout
        uses: scoutsecurity/scout-action@v1
        with:
          api-key: ${{ secrets.SCOUT_API_KEY }}
上述配置在每次推送或拉取请求时触发扫描。`actions/checkout@v4` 拉取代码,随后调用 `scout-action` 并传入加密的 API 密钥。该密钥需预先存储在仓库的 Secrets 中,确保凭证安全。
关键参数说明
  • api-key:用于认证 Scout 账户,必须通过 GitHub Secrets 注入;
  • on:定义触发事件,支持分支过滤以精细化控制扫描范围。

2.5 扫描结果解读与风险优先级划分

扫描完成后,系统输出的原始数据需结合上下文进行语义解析。常见漏洞如SQL注入、XSS、敏感信息泄露等,需根据其利用条件和影响范围评估严重性。
风险等级分类标准
通常采用CVSS评分体系,将风险划分为高、中、低三级:
  • 高危:可被远程利用并导致系统失控(如RCE、未授权访问)
  • 中危:可能泄露局部信息或依赖特定条件触发(如目录遍历)
  • 低危:信息提示类问题,无直接攻击路径(如版本号暴露)
优先级判定矩阵
漏洞类型可利用性影响程度优先级
SQL注入高高紧急
CSRF中中高
敏感头缺失低低低
自动化评分代码示例

def calculate_priority(cvss_score, exploitability):
    if cvss_score >= 7.0 and exploitability == 'remote':
        return 'critical'
    elif cvss_score >= 4.0:
        return 'high'
    else:
        return 'medium'
# 参数说明:cvss_score为漏洞评分(0-10),exploitability表示利用方式
# 输出结果用于驱动后续修复流程调度

第三章:构建安全左移的测试策略

3.1 将安全检测嵌入开发早期阶段

在现代软件开发生命周期中,将安全检测左移至开发早期阶段已成为最佳实践。通过在编码阶段即引入自动化安全工具,可显著降低后期修复成本。
静态应用安全测试(SAST)集成
SAST 工具可在不运行代码的情况下分析源码漏洞。以下为在 CI 流程中调用 Semgrep 进行安全扫描的示例:

# 在 CI 脚本中执行安全检测
semgrep scan --config=security-audit --exclude='test/*' src/
该命令使用 security-audit 预设规则集扫描 src/ 目录下的源代码,同时排除测试文件以减少误报。参数说明: - --config:指定检测规则配置; - --exclude:忽略指定路径; - src/:目标扫描目录。
常见漏洞检测覆盖
  • 硬编码凭证检测
  • SQL 注入风险识别
  • 不安全的依赖调用
  • 敏感数据泄露路径分析

3.2 基于 Docker Scout 的质量门禁设计

镜像安全扫描集成
Docker Scout 提供了持续的容器镜像分析能力,可在 CI/CD 流水线中嵌入质量门禁。通过启用自动扫描,系统可识别 CVE 漏洞、软件包偏差和配置风险。
scout:
  enable: true
  severity-threshold: medium
  excluded-cves:
    - CVE-2023-12345
该配置启用 Docker Scout 扫描,设定中危及以上漏洞触发告警,支持排除已知无害的特定 CVE,提升误报过滤能力。
门禁策略执行逻辑
扫描结果将作为部署前置条件,结合策略引擎实现自动化拦截。以下为策略判断流程:
  1. 构建完成后触发镜像分析
  2. Scout 返回漏洞等级与数量
  3. 若关键漏洞数 > 0 或中危以上未修复,则阻断发布
  4. 生成合规报告并通知安全团队
风险等级允许部署需人工审批
High/Critical否否
Medium是(7天内修复)是

3.3 实践:设置关键漏洞自动阻断策略

在现代安全运维中,针对关键漏洞的响应速度直接决定系统风险暴露窗口。通过自动化策略实现即时阻断,是提升防御效率的核心手段。
策略配置流程
首先,在SIEM平台定义检测规则,识别如CVE-2024-1234等高危漏洞利用行为。一旦触发,联动防火墙与WAF执行IP封禁或请求拦截。
自动化响应示例

{
  "rule_name": "CVE-2024-1234_Exploit_Detect",
  "trigger_severity": "critical",
  "auto_block": true,
  "block_duration_minutes": 1440,
  "notify_team": ["secops", "dev"]
}
该配置表示当检测到特定攻击特征时,系统将自动封锁源IP达24小时,并通知安全与开发团队。参数 auto_block 控制是否启用自动阻断,block_duration_minutes 定义封禁周期,避免长期误封。
策略生效验证
  • 模拟攻击流量验证检测准确率
  • 检查防火墙策略同步延迟
  • 确认告警与工单系统联动正常

第四章:进阶集成与企业级应用

4.1 与主流 DevSecOps 工具链的协同工作

在现代 DevSecOps 实践中,安全能力需无缝嵌入 CI/CD 流程。通过与主流工具链集成,实现从代码提交到部署全过程的安全左移。
与 CI/CD 平台集成
Jenkins、GitLab CI 和 GitHub Actions 可通过插件或自定义脚本调用 SAST 和 DAST 工具。例如,在 Jenkins Pipeline 中执行检测任务:

stage('Security Scan') {
    steps {
        sh 'bandit -r myapp/ -f json -o bandit-report.json'
        publishIssues issues: [sourceCodeScanner('BANDIT')]
    }
}
该代码段在 Jenkins 中触发 Python 项目的安全扫描,使用 Bandit 检测常见漏洞,并输出结构化报告供后续分析。
工具链数据同步机制
安全工具生成的报告可通过统一接口上传至中央平台(如 DefectDojo),实现问题追踪闭环。常用格式包括 SARIF、JSON Report 等。
  • SAST 工具:SonarQube、Checkmarx
  • DAST 工具:ZAP、Burp Suite
  • SCA 工具:Snyk、Dependency-Track
各工具输出标准化后,可被同一治理系统消费,提升安全可观测性。

4.2 使用 API 自动化获取扫描报告

在持续集成流程中,手动下载扫描报告效率低下。通过调用安全扫描平台提供的 RESTful API,可实现报告的自动化拉取。
认证与请求构造
多数平台采用 Token 认证机制。发送带有认证头的 GET 请求即可获取任务结果:
curl -H "Authorization: Bearer <your_token>" \
     "https://api.scanner.com/v1/scans/<scan_id>/report"
其中 <your_token> 为用户专属访问令牌,<scan_id> 是扫描任务唯一标识。
响应数据处理
API 返回 JSON 格式元数据及报告下载链接,常见字段如下:
字段名说明
status扫描状态(completed/running)
download_urlPDF 报告直链
severity_counts各等级漏洞统计

4.3 多环境多仓库的统一安全管理

在分布式研发体系中,多环境(如开发、测试、生产)与多代码仓库并存,带来密钥、权限和访问策略的碎片化风险。统一安全管理要求集中化的身份认证与细粒度授权机制。
基于OIDC的统一身份接入
通过OpenID Connect对接企业级身份提供商,实现跨环境单点登录与身份联邦:

identity:
  provider: "keycloak"
  issuer: "https://sso.example.com/auth/realms/master"
  client_id: "gitops-gateway"
  scopes: ["profile", "email", "groups"]
该配置将所有仓库的访问控制绑定至中心化身份源,确保用户身份可追溯、权限可审计。
权限策略集中管理
使用OPA(Open Policy Agent)定义通用策略规则,统一校验各仓库的Pull/Push请求:
  • 策略按环境划分命名空间(dev/prod)
  • 自动拦截未签名的提交操作
  • 敏感分支(如main)强制双人审批

4.4 实践:在私有 Registry 中实现批量镜像评估

在企业级容器环境中,私有镜像仓库常托管数百个镜像,手动逐个评估安全性和合规性效率低下。通过自动化脚本批量拉取镜像元数据并触发扫描,是提升运维效率的关键。
镜像列表获取与遍历
使用 Registry 的 HTTP API 获取项目下所有镜像名称及标签:

curl -s "https://registry.example.com/v2/project-name/tags/list" | jq -r '.tags[]' 
该命令返回标签列表,可结合 shell 循环批量处理每个镜像。
集成镜像扫描工具
将获取的镜像名传入 Trivy 等扫描器进行静态分析:

for image in $(get_images); do
  trivy image --format json -o report-$image.json registry.example.com/project-name/$image:latest
done
脚本自动为每个镜像生成报告,便于后续聚合分析漏洞分布。
结果汇总示例
镜像名称高危漏洞数扫描状态
app-web12完成
api-gateway5完成

第五章:未来展望:更智能、更自动的容器安全生态

随着云原生技术的深度演进,容器安全正从被动防御转向主动预测与自适应响应。AI 驱动的安全分析平台已开始集成到 CI/CD 流水线中,通过学习镜像构建模式识别潜在的恶意行为。例如,某金融企业部署了基于机器学习的镜像扫描器,在构建阶段检测到异常权限请求并自动阻断推送:

// 示例:在构建钩子中调用安全策略引擎
if buildConfig.ContainsPrivilegedEscalation() {
    log.Warn("Detected potential privilege escalation")
    policyEngine.Evaluate(buildContext) // 触发AI模型评估风险评分
    if riskScore > threshold {
        rejectImagePush()
    }
}
自动化修复机制也逐步落地。当静态扫描发现 CVE 漏洞时,系统可自动生成补丁分支并提交 PR。某电商团队采用该方案后,平均修复时间从 72 小时缩短至 4 小时。
智能化威胁检测的关键能力
  • 实时行为基线建模,识别偏离正常调用模式的容器活动
  • 基于上下文的漏洞优先级排序(CVSS + 环境暴露面)
  • 跨集群的日志聚合与异常关联分析
安全左移的实践路径
阶段工具集成自动化动作
开发IDE 插件高亮危险 API 调用
构建CI 扫描器阻断含严重漏洞镜像
部署策略引擎强制最小权限注入
DevSecOps闭环流程
避坑指南:在Ubuntu 22.04上配置UR5e与ROS2 Humble真机通信的完整流程 本文详细介绍了在Ubuntu 22.04上配置UR5e机械臂与ROS2 Humble真机通信的完整流程,包括环境准备、网络配置、URCap安装、ROS2驱动部署及控制器状态验证等关键步骤。特别针对常见问题如网络连接失败、驱动启动错误等提供了实用解决方案,帮助工程师高效完成UR5e与ROS2的集成工作。 阅读详情

相关推荐

100多台物理GPU服务器,每台服务器上有8张GPU卡,组网

计算网用 IB/RoCEv2 保证低延迟高带宽,支撑 800+GPU 的分布式训练;管理网和存储网独立部署,避免干扰核心通信;全链路冗余和规范布线,确保集群稳定运行;搭配 Slurm/K8s 和监控工具,实现高效管理。该方案可支撑千亿参数大模型训练,且具备极强的扩展性,未来可平滑扩容至 200 + 台服务器。

weixin_42795092的博客 2021

还在手动检测镜像漏洞?Docker Scout自动化集成测试已全面上线

告别手动检测镜像漏洞,Docker Scout 的集成测试助你实现自动化安全扫描。适用于CI/CD流水线中的容器镜像分析,实时发现漏洞并评估风险等级,提升发布效率与安全性。开发运维一体化新选择,值得收藏。

InstrIsle的博客 284

论文地图合规求生指南:5分钟搞定标准地图服务转ArcGIS可用矢量文件

本文提供了一份论文地图合规求生指南,帮助非GIS专业背景的科研人员在5分钟内将标准地图服务的EPS文件转换为ArcGIS兼容的矢量文件。通过详细的工作流程和关键参数设置,确保地图完全符合国家规范,同时节省时间成本。重点关注标准地图服务的合规性和Shapefile转换技巧,适用于紧急情况下的论文地图处理。

weixin_34233974的博客 402

揭秘Docker镜像漏洞检测:如何用Docker Scout实现自动化集成测试

掌握Docker镜像安全检测新方法,详解如何通过Docker Scout 的集成测试实现CI/CD流程中的自动化漏洞扫描与合规检查,适用于云原生应用部署、开发流水线优化等场景,提升安全性与交付效率,值得收藏。

InstrFun的博客 1064

Opencv2.4.9源码分析——HoughCircles

图形可以用一些参数进行表示,标准霍夫变换的原理就是把图像空间转换成参数空间(即霍夫空间),例如霍夫变换的直线检测就是在距离-角度空间内进行检测。圆可以表示成: (x-a)2+(y-b)2=r2                   (1) 其中a和b表示圆心坐标,r表示圆半径,因此霍夫变换的圆检测就是在这三个参数组成的三维空间内进行检测。 原则上,霍夫变换可以检测任何形状。但复杂的形状需要的

赵春江的专栏 3万+

告别命令行恐惧!用nTopology可视化工具5分钟搞定三维Voronoi泡沫建模

本文介绍如何利用nTopology可视化工具快速生成三维Voronoi泡沫结构,无需编程即可完成复杂建模。Voronoi结构在轻量化设计、能量吸收和生物医学等领域具有重要应用,传统命令行方法门槛较高。通过nTopology的四步流程,用户可在5分钟内创建仿真就绪模型,大幅提升设计效率。

weixin_30764771的博客 427

【安全左移实战】:基于Docker Scout的集成测试体系搭建全记录

通过Docker Scout的集成测试实现安全左移,覆盖CI/CD流程中的镜像漏洞检测与合规验证,提升发布安全性。详解在主流CI平台搭建自动化测试体系的方法,支持多环境适配与快速集成,显著降低生产风险。实践路径清晰,值得收藏。

VarFlow的博客 923

接口电路设计的关键要点

接口电路设计是嵌入式硬件开发的核心环节,本文系统阐述了五大关键设计要点:1)电平匹配技术,详细分析了3.3V/5V系统互连方案及转换电路计算;2)阻抗匹配原理,包括高速信号反射机制及差分信号处理;3)滤波与去耦设计,提出多级电容配置和"先电容后过孔"布局原则;4)接地设计规范,重点说明模拟/数字地分离及高速信号回流路径;5)防护电路设计,涵盖防反接、过流保护及ESD防护方案。文章通过具体计算公式、器件选型指南和布局技巧,为接口电路设计提供了系统化的解决方案,并附有设计检查清单和典型问题分

weiyvyy的博客 454

3步实现Docker Scout自动化测试集成,安全漏洞提前拦截率提升90%

快速实现Docker Scout的集成测试自动化,三步完成CI/CD流水线安全加固。适用于容器化应用开发场景,通过镜像扫描、漏洞拦截与策略配置,提前发现90%以上安全风险。流程清晰,易于落地,值得收藏。

ByteVein的博客 778

运维简历优化指南,DeepSeek助您运维简历秒变高分!

例如,当掌握了新的运维技术,如 Serverless 架构的运维管理,就将其添加到简历的专业技能部分,并简要描述在相关项目中的应用情况和成果,如 “在 [项目名称] 中,负责 Serverless 架构的运维工作,成功实现了应用的低成本、高弹性运行,降低了运维成本 30%”。上传简历至 DeepSeek,并输入指令:“请根据以下岗位招聘要求,帮我重新解构我的简历,按照【教育背景→实习经历→项目经历→个人评价→技能证书】的模块,输出一份符合下述岗位的简历,提升我的求职竞争力。

大模型大数据攻城狮的专栏 1469

127. 答网友疑问:ABAP Function Module 如何支持内表结构不确定的动态输入参数

ABAP RTTI 的全称是 Runtime Type Identification. 使用 RTTI,ABAP 开发人员可以在运行时获取关于数据对象的各种信息,包括其数据类型、字段列表(如果数据是Structure 或者内表的话)以及这些字段的技术属性,比如字段名称,字段数据类型,长度等等。对于这些字段信息,ABAP 提供了一组特殊的类和接口,包括 CL_ABAP_TYPEDESCR、CL_ABAP_STRUCTDESCR、CL_ABAP_TABLEDESCR 等等。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1763

【Docker Scout集成测试实战指南】:掌握CI/CD中安全扫描的黄金法则

掌握Docker Scout的集成测试方法,提升CI/CD流程中的安全防护能力。适用于DevOps团队在容器化部署中自动检测镜像漏洞与合规风险,结合GitHub Actions实现持续安全扫描。精准定位问题、减少误报,保障应用交付安全,值得收藏。

QuickCode的博客 683

(12)单相降压自耦变压器的等效电路和仿真模型

本文根据电机学基本原理,从单相双绕组变压器的接线方式出发,建立基本方程并导出T型等效电路。然后将双绕组变压器演变成一种降压自耦变压器,详细地建立起单相降压自耦变压器的数学模型以及导出相对应的等效电路,最后用Matlab/simulink的simscape元件库元件建立了基于单相自耦变压器的T型等效电路的仿真模型。用实例仿真验证了本文工作的正确性。

weixin_45670943的博客 1046

揭秘Docker Scout自动化测试集成:如何实现镜像漏洞秒级响应

快速实现镜像漏洞秒级响应,揭秘Docker Scout的集成测试自动化方案。适用于CI/CD流水线中的安全检测,通过自动扫描容器镜像、实时报告漏洞风险,提升发布安全性与效率。方法简单,集成无缝,值得收藏。

GatherTide的博客 443

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

从构建到部署,Docker Scout集成测试全解析,打造零风险发布闭环

掌握Docker Scout的集成测试,实现从构建到部署的安全闭环。适用于CI/CD流水线,通过漏洞扫描与合规检查,提前发现镜像风险,提升发布安全性。自动化策略+精准报告,助力团队零风险交付,值得收藏。

VarFun的博客 644

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Docker Scout集成测试完全指南,解锁DevSecOps安全新范式

掌握Docker Scout的集成测试,全面提升CI/CD安全性。本文详解其在DevSecOps中的应用,涵盖镜像漏洞扫描、自动化策略配置与主流CI工具集成方法,实现构建即检测。助力团队高效发现并修复安全风险,值得收藏。

BytePerch的博客 309

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

5大关键步骤教你玩转Docker Scout集成测试,安全上线不再难

掌握Docker Scout的集成测试,轻松实现应用安全上线。本文详解5大关键步骤,覆盖CI/CD流程集成、漏洞扫描、依赖分析等场景,帮助团队快速发现镜像风险、提升发布安全性。方法实用,步骤清晰,值得收藏。

FastSolve的博客 292

Docker Scout在企业级流水线中的应用(集成测试最佳实践曝光)

Docker Scout 的集成测试助力企业级CI/CD流水线安全升级,通过自动化镜像漏洞扫描与合规性检测,精准识别部署风险。适用于多云环境与Kubernetes编排场景,提升发布质量与响应效率。最佳实践曝光,值得收藏。

CompiWander的博客 1072

手把手带你打通Docker Scout+GitHub Actions集成测试全流程

掌握Docker Scout的集成测试全流程,轻松实现镜像安全与质量自动化。结合GitHub Actions持续集成,精准识别漏洞并优化容器镜像,提升DevOps效率。适用于云原生应用开发、CI/CD流水线增强等场景,安全左移实践典范。值得收藏

FuncFun的博客 325

【Docker Scout集成测试实战指南】:从零构建高效安全的CI/CD流水线

掌握Docker Scout的集成测试,轻松实现CI/CD流水线中的安全与效率平衡。本文详解如何在DevOps流程中自动化镜像扫描、漏洞检测与合规检查,提升发布质量。涵盖实际配置步骤与最佳实践,助力团队构建更安全的容器化应用,值得收藏。

CompiTide的博客 374

企业级容器安全防线构建:Docker Scout集成测试的7个核心技巧

构建企业级容器安全防线,掌握Docker Scout的集成测试7大技巧。适用于CI/CD流水线自动化、镜像漏洞检测等场景,提升部署安全性与效率。涵盖策略配置、结果分析与修复实践,助力DevSecOps落地,值得收藏。

ProceChat的博客 451

Docker Scout集成测试避坑指南,90%新手都忽略的关键配置细节

掌握Docker Scout的集成测试关键配置,避开90%新手常踩的坑。适用于CI/CD流水线中的镜像安全检测,详解权限设置、策略规则与自动化扫描集成方法,提升容器安全性与发布效率。避坑要点全解析,值得收藏。

CompiLume的博客 656

为什么顶尖科技公司都在用Docker Scout做集成测试?真相令人震惊

掌握高效软件交付秘诀,揭秘Docker Scout 的集成测试如何提升发布质量。适用于CI/CD流水线中的镜像安全扫描与合规检测,通过自动化漏洞识别和依赖分析,帮助团队快速发现风险。领先企业已实现测试效率翻倍,值得收藏,点击了解实战应用。

SimCompile的博客 351

Docker Scout集成测试避坑手册:90%工程师忽略的3个致命细节

掌握Docker Scout的集成测试关键细节,避开90%工程师易犯的三大错误。涵盖CI/CD场景适配、镜像漏洞精准识别与自动化策略配置,提升安全检测效率。实用避坑指南,值得收藏。

LogicWander的博客 473

为什么顶尖科技公司都在用Docker Scout做集成测试?真相终于揭晓

掌握高效软件交付秘诀,顶尖公司为何青睐Docker Scout 的集成测试?本文揭秘其在CI/CD中自动扫描镜像漏洞、合规风险的核心机制,覆盖云原生、微服务场景下的安全实践。提升部署安全性与效率,值得收藏。

InstrGap的博客 958

容器镜像漏洞扫描与修复实战:从原理到CI/CD集成

在云原生和容器化技术普及的背景下,软件供应链安全成为保障应用稳定性的核心环节。其基本原理是通过解析容器镜像的软件包清单,与CVE等漏洞数据库进行比对,识别已知安全风险。这项技术的核心价值在于实现安全左移,将风险管控提前至开发构建阶段,大幅降低修复成本与安全事件概率。典型应用场景包括CI/CD流水线集成、镜像仓库持续监控及本地开发环境快速反馈。本文聚焦于镜像漏洞扫描与修复这一关键实践,深入剖析Trivy、Grype等主流工具的工作原理与选型策略,并提供从扫描报告解读到自动化修复的完整落地路径,帮助开发与运维团

weixin_30915951的博客 375
上一篇: 揭秘Docker容器中GenAI应用日志异常:3步实现精准定位与快速修复
下一篇: Docker多架构镜像最佳实践(含Buildx与Manifest详解)
deeplens
博客等级 码龄21年 176粉丝 2158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值