
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Trivy("tri"发音如"trigger","vy"发音如"envy")是一款简单且全面的容器漏洞扫描工具。它能够检测操作系统包(如Alpine、Red Hat Universal Base Image、RHEL、CentOS、Debian、Ubuntu等)和应用依赖(如Bundler、Composer、Pipenv、Poetry、npm、yarn、Cargo等)的漏洞。Trivy易于使用,仅需安装二进制文件即可开始扫描,扫描时只需指定容器镜像名称。
Trivy特别适合在持续集成(CI)流程中使用,可在推送容器镜像至仓库前轻松扫描本地镜像,帮助开发和运维团队在早期发现并修复漏洞。
/etc/yum.repos.d/trivy.repo:
ini[trivy] name=Trivy repository baseurl=https://knqyf263.github.io/trivy-repo/rpm/releases/$releasever/$basearch/ gpgcheck=0 enabled=1
或直接安装RPM包:bashsudo yum -y update sudo yum -y install trivy
bashrpm -ivh https://github.com/knqyf263/trivy/releases/download/v0.0.15/trivy_0.0.15_Linux-64bit.rpm
[CODE_NAME]为系统代号(可通过lsb_release -c获取,如wheezy、jessie、stretch、buster、trusty、xenial、bionic):
或直接安装DEB包:bashsudo apt-get install apt-transport-https gnupg wget -qO - https://knqyf263.github.io/trivy-repo/deb/public.key | sudo apt-key add - echo "deb https://knqyf263.github.io/trivy-repo/deb [CODE_NAME] main" | sudo tee -a /etc/apt/sources.list.d/trivy.list sudo apt-get update sudo apt-get install trivy
bashsudo apt-get install rpm wget https://github.com/knqyf263/trivy/releases/download/v0.0.15/trivy_0.0.15_Linux-64bit.deb sudo dpkg -i trivy_0.0.15_Linux-64bit.deb
通过AUR安装:
bashpikaur -Sy trivy-bin # 或 yay -Sy trivy-bin
bashbrew install knqyf263/trivy/trivy
从https://github.com/knqyf263/trivy/releases/latest%E4%B8%8B%E8%BD%BD%E5%AF%B9%E5%BA%94%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E6%9E%B6%E6%9E%84%E7%9A%84%E5%BD%92%E6%A1%A3%E6%96%87%E4%BB%B6%EF%BC%8C%E8%A7%A3%E5%8E%8B%E5%90%8E%E5%B0%86%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%94%BE%E5%85%A5%60$PATH%60%E7%9B%AE%E5%BD%95%EF%BC%88%E5%A6%82Unix%E7%B3%BB%E7%BB%9F%E7%9A%84%60/usr/local/bin%60%EF%BC%89%EF%BC%8C%E5%B9%B6%E7%A1%AE%E4%BF%9D%E5%85%B7%E6%9C%89%E6%89%A7%E8%A1%8C%E6%9D%83%E9%99%90%E3%80%82
扫描RHEL/CentOS镜像需安装
rpm命令。
bashmkdir -p $GOPATH/src/github.com/knqyf263 cd $GOPATH/src/github.com/knqyf263 git clone https://github.com/knqyf263/trivy cd trivy/cmd/trivy/ export GO111MODULE=on go install
指定镜像名称即可扫描:
bashtrivy python:3.4-alpine
扫描远程镜像
bashdocker run --rm -v [本地缓存目录]:/root/.cache/ knqyf263/trivy [镜像名称]
macOS示例:
bashdocker run --rm -v $HOME/Library/Caches:/root/.cache/ knqyf263/trivy python:3.4-alpine
扫描本地镜像
需挂载Docker socket:
bashdocker run --rm -v /var/run/docker.sock:/var/run/docker.sock \ -v $HOME/Library/Caches:/root/.cache/ knqyf263/trivy python:3.4-alpine
若运行出错,请拉取最新版本镜像:
docker pull knqyf263/trivy
| 参数 | 说明 | 示例 |
|---|---|---|
--severity | 按严重级别过滤漏洞(逗号分隔,可选:UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL) | --severity HIGH,CRITICAL |
--format | 输出格式(table/json) | --format json |
--output | 输出结果至文件 | --output result.json |
--exit-code | 发现漏洞时的退出码(默认0) | --exit-code 1 |
--no-update | 跳过漏洞数据库更新 | --no-update |
--ignore-unfixed | 忽略未修复的漏洞 | --ignore-unfixed |
--vuln-type | 按漏洞类型过滤(os/app) | --vuln-type app |
--ignore-policy | 指定忽略漏洞的策略文件 | --ignore-policy .trivyignore |
--clear-cache | 清除镜像缓存 | --clear-cache |
--reset | 重置所有缓存和数据库 | --reset |
扫描镜像
bashtrivy knqyf263/test-image:1.2.3
扫描镜像文件
bashtrivy image --input path/to/image.tar
保存结果为JSON格式
bashtrivy --format json --output result.json python:3.4-alpine
按严重级别过滤漏洞
仅显示HIGH和CRITICAL级别漏洞:
bashtrivy --severity HIGH,CRITICAL python:3.4-alpine
按漏洞类型过滤
仅扫描应用依赖漏洞:
bashtrivy --vuln-type app python:3.4-alpine
跳过漏洞数据库更新
bashtrivy --no-update python:3.4-alpine
忽略未修复的漏洞
bashtrivy --ignore-unfixed python:3.4-alpine
指定退出码
发现CRITICAL漏洞时退出码设为2:
bashtrivy --exit-code 2 --severity CRITICAL python:3.4-alpine
忽略指定漏洞
创建.trivyignore文件:
# 忽略CVE-2019-1543 CVE-2019-1543 # 忽略rails-html-sanitizer的所有漏洞 rails-html-sanitizer
执行扫描:
bashtrivy --ignore-policy .trivyignore python:3.4-alpine
清除镜像缓存
bashtrivy --clear-cache
重置所有缓存和数据库
bashtrivy --reset
在.travis.yml中添加:
yamllanguage: bash services: - docker before_script: - docker pull python:3.4-alpine - curl -sfL https://raw.githubusercontent.com/knqyf263/trivy/master/contrib/install.sh | sh -s -- -b /usr/local/bin script: - trivy --exit-code 1 --severity HIGH,CRITICAL python:3.4-alpine
在.circleci/config.yml中添加:
yamlversion: 2.1 jobs: scan: docker: - image: circleci/golang:1.14 steps: - checkout - run: name: Install Trivy command: | curl -sfL https://raw.githubusercontent.com/knqyf263/trivy/master/contrib/install.sh | sh -s -- -b /usr/local/bin - run: name: Scan image command: trivy --exit-code 1 --severity HIGH,CRITICAL python:3.4-alpine workflows: scan_workflow: jobs: - scan
如需扫描私有仓库镜像,需先登录仓库:
bash# Docker CLI登录 docker login private.registry.com # 或设置环境变量 export TRIVY_USERNAME=username export TRIVY_PASSWORD=password trivy private.registry.com/image:tag
Trivy通过解析操作系统的包管理数据库(如Alpine的apk、Debian的dpkg、RHEL的rpm)检测已安装包的漏洞,并与官方CVE数据库比对。
Trivy扫描应用依赖文件(如Gemfile.lock、package-lock.json、Cargo.lock、composer.lock等),提取依赖版本信息,与对应语言的安全数据库(如RubySec、npm audit、RustSec等)比对,发现应用层漏洞。
/usr/local/bin或/opt/homebrew/bin)在$PATH中。Q:扫描速度慢?
A:首次扫描需下载漏洞数据库,后续扫描会使用缓存;可添加--no-update跳过数据库更新(适用于频繁扫描场景)。
Q:如何更新Trivy?
A:根据安装方式选择:RPM/DEB使用包管理器更新,Homebrew执行brew upgrade trivy,二进制包需手动下载新版本。
Q:支持Windows系统吗?
A:支持,可从GitHub Releases下载Windows二进制包。
Trivy相比其他扫描工具(如Clair、Anchore Engine等)具有以下优势:
以下是 knqyf263/trivy 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务