【Docker项目实战】使用Docker部署HarborGuard容器安全扫描平台

举报
江湖有缘 发表于 2025/10/26 01:24:11 2025/10/26
【摘要】 【Docker项目实战】使用Docker部署HarborGuard容器安全扫描平台

一、HarborGuard介绍

1.1 HarborGuard项目简介

HarborGuard 是一个功能全面的容器安全扫描平台,集成多种主流安全工具,通过直观的 Web 界面帮助开发者和团队轻松管理与可视化 Docker 镜像的安全评估,涵盖漏洞检测、SBOM 生成与最佳实践检查,让容器安全变得清晰可控。

1.2 HarborGuard主要特点

  • 🧩 全面的扫描能力:集成 Trivy、Grype、Syft、Dockle、OSV Scanner 和 Dive 六大主流工具,覆盖漏洞扫描、SBOM 生成与配置合规检查。
  • 🔍 智能结果分析:自动对发现的漏洞进行分类与严重性评估,提供清晰的安全风险概览。
  • 📊 先进的可视化界面:支持交互式散点图、历史扫描对比和实时进度监控,让安全数据一目了然。
  • 🧰 开发者友好设计:基于 React 19 + Next.js 15 与 TypeScript 构建,技术栈现代,易于二次开发与维护。
  • 💾 灵活的数据存储:支持 SQLite 和 PostgreSQL 数据库,满足从轻量部署到企业级应用的不同需求。
  • ⚙️ 简便的配置管理:通过环境变量即可完成全部配置,适配多种部署环境,提升部署效率。
  • 🔌 企业级功能支持:提供 RESTful API,支持批量导出报告与持久化存储扫描历史,便于集成与审计。
  • 🌐 实时交互体验:界面响应迅速,支持按严重性过滤、分组查看,帮助团队快速定位关键问题。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。

hostname IP地址 操作系统版本 Docker版本 部署项目 备注
jeven 192.168.3.88 Ubuntu 24.04.2 LTS 28.5.0 HarborGuard ——

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署HarborGuard容器安全扫描平台。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Sat 2025-10-04 13:29:05 UTC; 2 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 888 (dockerd)
      Tasks: 65
     Memory: 1.2G (peak: 1.4G)
        CPU: 3min 23.296s
     CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

root@jeven:~# docker -v
Docker version 28.5.0, build 887030f

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven:~# docker compose version
Docker Compose version v2.39.4

四、拉取HarborGuard镜像

下载HarborGuard容器镜像,镜像名称为:registry.cn-hangzhou.aliyuncs.com/jeson/harborguard:latest

docker pull registry.cn-hangzhou.aliyuncs.com/jeson/harborguard:latest

在这里插入图片描述

五、部署HarborGuard服务

5.1 创建部署目录

  • 创建HarborGuard部署目录
mkdir -p /data/harborguard/data &&  cd  /data/harborguard
  • 设置目录权限
chmod -R 777  /data/harborguard

5.2 编辑部署文件

使用docker-cli方式部署,可参考以下命令:

docker run -d \
   --restart unless-stopped \
   --name harborguard \
   -p 3000:3000 \
   -v /var/run/docker.sock:/var/run/docker.sock \
   -v $(pwd)/data:/data \
   -e DATABASE_URL="file:/data/app.db" \
   registry.cn-hangzhou.aliyuncs.com/jeson/harborguard:latest

在部署目录下,创建docker-compose.yaml文件,内容如下所示:

vim docker-compose.yaml
version: '3'

services:
  harborguard:
    image:  registry.cn-hangzhou.aliyuncs.com/jeson/harborguard:latest
    container_name: harborguard
    restart: always
    ports:
      - "3900:3000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /data/harborguard/data:/data


  • 环境变量参考:
变量名 描述 默认值 有效值 示例
扫描仪配置
MAX_CONCURRENT_SCANS 限制并行扫描器的执行以防止资源耗尽 3 1-20 MAX_CONCURRENT_SCANS=5
SCAN_TIMEOUT_MINUTES 允许单个扫描仪执行的最大时间(分钟) 30 5-180 SCAN_TIMEOUT_MINUTES=60
ENABLED_SCANNERS 启用的扫描仪(逗号分隔列表) trivy,grype,syft,dockle,osv,dive 任意组合:trivy、grype、syft、dockle、osv、dive ENABLED_SCANNERS=trivy,grype
日志记录和调试
LOG_LEVEL 控制应用程序日志的详细程度 info debug, info, warn, error LOG_LEVEL=debug
数据库与维护
DATABASE_URL PostgreSQL 数据库连接字符串 捆绑的PostgreSQL 外部PostgreSQL:postgresql://user:pass@host:port/db DATABASE_URL=“postgresql://user:pass@localhost:5432/harborguard”
CLEANUP_OLD_SCANS_DAYS 自动删除比指定天数更旧的扫描记录 30 1-365 CLEANUP_OLD_SCANS_DAYS=90

5.3 创建HarborGuard容器

执行以下命令,创建HarborGuard容器。

docker compose up -d

在这里插入图片描述

5.4 查看HarborGuard容器状态

检查HarborGuard容器运行状态,确保HarborGuard容器正常启动。

root@jeven:/data/harborguard#  docker compose ps
WARN[0000] /data/harborguard/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME          IMAGE                                                        COMMAND                  SERVICE       CREATED          STATUS                     PORTS
harborguard   registry.cn-hangzhou.aliyuncs.com/jeson/harborguard:latest   "docker-entrypoint.s…"   harborguard   19 seconds ago   Up 19 seconds(health: starting)   5432/tcp, 0.0.0.0:3900->3000/tcp, [::]:3900->3000/tcp

在这里插入图片描述

5.5 检查HarborGuard容器日志

检查容器运行日志,确保HarborGuard服务正常运行。

docker compose logs

在这里插入图片描述

六、访问HarborGuard服务

浏览器地址: http://<个人的服务器IP>:3900,访问HarborGuard初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

七、HarborGuard基本使用

在HarborGuard首页,点击左侧菜单栏 New Scan— Local ——搜索本地镜像,选择其中一个本地容器镜像,确定开始扫描。

在这里插入图片描述

等待一段时间,扫描完成后,结果如下所示:

在这里插入图片描述

八、总结

本次实践通过Docker成功部署了HarborGuard容器安全扫描平台,整个过程简单高效,仅需几步操作即可完成环境搭建。HarborGuard提供了丰富的扫描功能和灵活的配置选项,能有效满足容器安全检测需求,帮助用户及时发现镜像潜在风险。通过实际操作验证了平台的可用性,其直观的界面和多样化的扫描工具让容器安全管理更加便捷。HarborGuard是一款实用的容器安全扫描工具,适合各类场景下的容器镜像安全检测工作。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。