Harbor是一個容器映像檔(Image)的倉儲空間, 它除了提供儲存Image之外, 也支援弱點掃描的工具, 其中「Trivy」是harbor使用的掃描器之一, 但通常我們在CI流程會推送到倉儲空間之後再進行掃描, 假設CI流程如下, 那麼每次我們都需要經過這一連串的流程才能掃描我們的容器, 對於緊急的客戶來說, 時程上絕對是 💥 爆炸無誤。


我們可以怎麼做呢?
- 使用 aquasec/trivy 這個Docker Image。
- 掛載docker.sock到掃描容器, 讓掃描容器可以存取本地的映像檔。
- 解完弱點後安心的版控及跑CI流程。
如何掃描容器映像檔?
docker run --rm \\
-v /var/run/docker.sock:/var/run/docker.sock \\
aquasec/trivy image <你的image>
掃描完畢會出現掃描報告:
2025-04-30T08:34:17Z INFO [vuln] Vulnerability scanning is enabled
2025-04-30T08:34:17Z INFO [secret] Secret scanning is enabled
2025-04-30T08:34:17Z INFO [secret] If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2025-04-30T08:34:17Z INFO [secret] Please see also <https://trivy.dev/v0.61/docs/scanner/secret#recommendation> for faster secret detection
2025-04-30T08:34:35Z INFO [python] Licenses acquired from one or more METADATA files may be subject to additional terms. Use `--debug` flag to see all affected packages.
2025-04-30T08:34:37Z INFO Detected OS family="debian" version="12.10"
2025-04-30T08:34:37Z INFO [debian] Detecting vulnerabilities... os_version="12" pkg_num=312
2025-04-30T08:34:37Z INFO Number of language-specific files num=2
2025-04-30T08:34:37Z INFO [node-pkg] Detecting vulnerabilities...
2025-04-30T08:34:37Z INFO [python-pkg] Detecting vulnerabilities...
2025-04-30T08:34:37Z WARN Using severities from other vendors for some vulnerabilities. Read <https://trivy.dev/v0.61/docs/scanner/vulnerability#severity-selection> for details.
2025-04-30T08:34:38Z INFO Table result includes only package filenames. Use '--format json' option to get the full path to the package file.
Report Summary
...
透過報告的觀察, 我們可以知道我們的容器還有哪些弱點, 一個個的修復後, 再進行版控才不會浪費太多時間在等待。
結語
容器化真的讓我們省掉許多複雜的安裝程序, 只要下載Image, 基本上啟動時能減少與Host主機的衝突, 讓我們想用隨時用, 不想用還可以不用安裝於主機, 這邊真的非常推薦大家可以參閱:
這讓我們可以對Docker容器化可以有一個基本的認識, 如有任何問題也歡迎下方留言互相討論。






















