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。

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
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
环境变量参考:

5.3 创建HarborGuard容器
执行以下命令,创建HarborGuard容器。
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服务正常运行。
六、访问HarborGuard服务
浏览器地址:
http://<个人的服务器IP>:3900,访问HarborGuard初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

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

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

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


