Masih taruh image dari Docker Hub tanpa cek dulu isinya? Praktik ini beresiko gede di 2026, apalagi serangan supply chain lewat image container makin sering kejadian. Salah satu langkah paling murah yang sering dilewatin bro-bro pengelola VPS adalah scan vulnerability Docker image sebelum deploy ke production. Artikel ini bahas cara pakai Trivy, tool open source dari Aqua Security, buat scan vulnerability Docker di server Linux kamu. Bahasannya lengkap, mulai dari instalasi sampai integrasi ke CI/CD.
Kenapa Scan Vulnerability Docker Itu Nggak Bisa Ditunda Lagi
Image Docker yang kamu pull dari registry publik bukan cuma berisi aplikasi kamu doang. Ada juga seluruh dependency, library sistem, sampai binary bawaan base image di dalamnya. Banyak kasus breach beberapa bulan terakhir justru berasal dari image yang kelihatannya aman, padahal bawa CVE lama yang belum di-patch. Rutin scan vulnerability Docker sebelum deploy bikin kamu tahu lebih dulu paket mana yang punya celah keamanan. Kamu nggak perlu nunggu server kena serang baru sadar masalahnya.
VPS kamu mungkin dipakai buat banyak aplikasi client atau project sekaligus. Kalau begitu, satu image yang kompromis bisa jadi pintu masuk ke seluruh sistem. Auditor keamanan modern sekarang juga mulai nanya soal SBOM (Software Bill of Materials) dan hasil scan. Jadi kebiasaan ini bukan cuma soal teknis, tapi juga soal compliance kalau kamu kerja di tim atau punya klien enterprise.
Install Trivy di VPS Linux
Trivy tersedia lewat repository resmi buat distro berbasis Debian/Ubuntu, jadi instalasinya nggak ribet. Berikut langkahnya di Ubuntu atau Debian:
sudo apt-get install wget gnupg
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy
Distro RHEL/CentOS/Fedora juga punya repo RPM resmi dengan format yang mirip. Cek versi yang barusan keinstall dengan trivy --version. Trivy nggak butuh database eksternal atau middleware tambahan. Trivy cuma download database CVE saat pertama kali jalan. Pastikan VPS punya akses internet keluar minimal buat proses awal ini.
Cara Scan Vulnerability Docker Image dengan Trivy
Setelah Trivy keinstall, scan vulnerability Docker image tinggal satu baris perintah. Contohnya buat scan image Nginx:
trivy image nginx:latest
Trivy bakal nampilin daftar CVE lengkap sama tingkat severity-nya, mulai dari LOW sampai CRITICAL. Scan pertama bisa makan waktu beberapa menit karena Trivy lagi download database CVE. Kalau image kamu gede dan banyak layer, waktunya bisa lebih lama lagi. Mau fokus cuma ke masalah serius? Filter severity-nya seperti ini:
trivy image --severity HIGH,CRITICAL myapp:1.0
Butuh exit code non-nol pas ketemu kerentanan buat kebutuhan otomatisasi CI/CD? Tambahin flag --exit-code 1. Ada juga opsi --ignore-unfixed buat nyembunyiin CVE yang emang belum ada patch-nya dari vendor upstream. Dengan begitu, laporan kamu nggak penuh noise yang nggak bisa ditindaklanjuti.
Integrasi Scan Vulnerability Docker ke Pipeline CI/CD
Manual scan satu-satu itu capek kalau image-nya banyak. Solusinya, masukkan Trivy ke pipeline biar jalan otomatis tiap ada build baru. GitHub Actions punya official action aquasecurity/trivy-action buat kebutuhan ini. Tinggal tambahin step scan setelah build image, lalu atur pipeline supaya gagal kalau ketemu CVE critical.
Compose v2 versi terbaru malah udah mendukung integrasi langsung sama Docker Scout. Akibatnya, command docker compose up bisa otomatis berhenti kalau ada package dengan skor risiko tinggi di dalam image. Konsepnya sama kayak Trivy: scan vulnerability Docker jadi hard-stop di deployment. Bukan cuma catatan yang numpuk di tiket dan nggak pernah dibaca.
Lengkapi dengan SBOM dan Signing Pakai Cosign
Scan CVE aja sebenarnya belum cukup buat jamin rantai supply chain image kamu aman. Syft bisa generate SBOM, alias daftar lengkap komponen dalam image. Dokumen ini berguna banget kalau ada CVE baru muncul. Kamu bisa langsung cek image mana yang kena dampak, tanpa scan ulang semuanya.
Selain SBOM, sign image pakai Cosign juga makin jadi standar. Dengan signing, tiap docker pull bisa kamu verifikasi keasliannya lewat transparency log publik. Kamu jadi bisa mastiin image yang jalan di VPS emang berasal dari source terpercaya. Bukan image yang udah diutak-atik pihak lain di tengah jalan.
Troubleshooting Trivy yang Sering Ditemuin
Beberapa masalah umum biasa muncul waktu pertama kali pakai Trivy di VPS:
- Scan pertama lama banget: penyebabnya database vulnerability (sekitar 100-200MB) lagi didownload. Solusinya, pre-download dulu pakai
trivy image --download-db-only, atau pakai flag--skip-db-updatekalau database udah ada. - Kebanjiran hasil false positive: masalah ini sering terjadi kalau CVE yang kedeteksi ternyata nggak relevan buat skenario kamu. Bikin file
.trivyignorebuat exclude CVE yang udah dicek manual dan dipastikan aman. - Gagal connect ke registry private: login dulu ke registry lewat
docker login, atau siapin environment variable credential yang sesuai sebelum jalanin scan.
Udah pernah setup Docker rootless di VPS? Kombinasi rootless plus scan vulnerability Docker rutin bikin lapisan keamanan container kamu jauh lebih solid. Baca juga panduan cara install Docker rootless di Ubuntu VPS biar container escape juga ketutup dari sisi lain.
Penutup
Kebiasaan scan vulnerability Docker sebelum deploy itu investasi kecil. Bandingkan dengan risiko server kena breach gara-gara image yang nggak pernah dicek. Mulai dari langkah simpel: install Trivy, lalu biasakan scan tiap build. Pelan-pelan tambahin SBOM dan signing kalau infrastruktur kamu makin berkembang. Cek juga dokumentasi resmi Trivy buat detail lengkap opsi dan konfigurasinya.























