
सबसे व्यापक डॉकर सुरक्षा स्कैनर
<div align="center">
<img src="https://assets.kitploit.com/production/public/readmes/1309/3345979faae1cdabbe2912dfcaf46221df5cb53697630a8e8dcc5eebf814e949.png" alt="DockerScan Logo" width="200">
# DockerScan v2.0
### *सबसे व्यापक डॉकर सुरक्षा स्कैनर*
[](LICENSE)
[](https://golang.org/)
[](https://github.com/cr0hn/dockerscan/releases)
[](https://github.com/cr0hn/dockerscan/actions/workflows/dockerscan.yml)
[](https://github.com/cr0hn/dockerscan)
[](https://goreportcard.com/report/github.com/cr0hn/dockerscan)
[](https://github.com/cr0hn/dockerscan/releases)
**द्वारा [Daniel Garcia (cr0hn)](https://cr0hn.com)** | [GitHub](https://github.com/cr0hn/dockerscan) | [वेबसाइट](https://cr0hn.com)
---
[विशेषताएँ](#-features) •
[स्थापना](#-installation) •
[त्वरित आरंभ](#-quick-start) •
[दस्तावेज़ीकरण](#-documentation) •
[उपयोग के मामले](#-use-cases) •
[नया क्या है](#-whats-new-in-v20) •
[योगदान](#-contributing)
</div>
---
## 📑 सामग्री तालिका
- [अवलोकन](#-overview)
- [विशेषताएँ](#-features)
- [v2.0 में नया क्या है](#-whats-new-in-v20)
- [स्थापना](#-installation)
- [त्वरित आरंभ](#-quick-start)
- [उपयोग](#-usage)
- [निजी रजिस्ट्री प्रमाणीकरण](#-private-registry-authentication)
- [सुरक्षा स्कैनर](#-security-scanners)
- [आउटपुट प्रारूप](#-output-formats)
- [उपयोग के मामले](#-use-cases)
- [तुलना](#-comparison-with-other-tools)
- [आर्किटेक्चर](#-architecture)
- [योगदान](#-contributing)
- [संदर्भ](#-references)
- [लाइसेंस](#-license)
- [लेखक](#-author)
---
## 🎯 अवलोकन
**DockerScan v2.0** एक अगली पीढ़ी का सुरक्षा स्कैनर है जो Docker कंटेनरों और इमेजों के लिए है, जिसे पूरी तरह से Go में फिर से लिखा गया है। यह नवीनतम 2024-2025 शोध, उद्योग मानकों (CIS बेंचमार्क, NIST SP 800-190), और उत्पादन वातावरणों में पाए गए वास्तविक-दुनिया के हमले पैटर्न के आधार पर कई सुरक्षा स्कैनिंग तकनीकों को जोड़ता है।
### DockerScan v2.0 क्यों?
- ✅ **सबसे व्यापक**: एक उपकरण में 5+ सुरक्षा स्कैनिंग तकनीकों को जोड़ता है
- ✅ **नवीनतम शोध**: 2024-2025 आपूर्ति श्रृंखला हमलों और CVEs पर आधारित
- ✅ **उत्पादन के लिए तैयार**: CI/CD के लिए SARIF आउटपुट, स्वचालन के लिए निकास कोड
- ✅ **अत्यंत तेज़**: समवर्ती स्कैनिंग के साथ Go में लिखा गया
- ✅ **विस्तार योग्य**: कस्टम स्कैनर के लिए प्लगइन आर्किटेक्चर
- ✅ **निःशुल्क और ओपन सोर्स**: BSD-3 लाइसेंस
---
## 🌟 विशेषताएँ
### 🛡️ **सुरक्षा स्कैनिंग मॉड्यूल**
#### 1. **CIS Docker बेंचमार्क v1.7.0**
80+ स्वचालित नियंत्रणों के साथ पूर्ण अनुपालन जाँच:
- ✅ होस्ट कॉन्फ़िगरेशन सुरक्षा (13 जाँच)
- ✅ Docker डेमन हार्डनिंग (18 जाँच)
- ✅ फ़ाइल और निर्देशिका अनुमतियाँ (9 जाँच)
- ✅ कंटेनर इमेज सर्वोत्तम अभ्यास (13 जाँच)
- ✅ रनटाइम सुरक्षा सत्यापन (31+ जाँच)
- ✅ सुरक्षा संचालन अनुपालन
#### 2. **आपूर्ति श्रृंखला हमले का पता लगाना** 🆕
2024 के वास्तविक हमले अभियानों पर आधारित:
- ✅ **इमेजलेस कंटेनर का पता लगाना** - बिना वास्तविक लेयर्स वाले दुर्भावनापूर्ण कंटेनरों की पहचान (Docker Hub पर 4M+ पाए गए)
- ✅ **क्रिप्टोकरेंसी माइनर का पता लगाना** - माइनिंग मैलवेयर का पता लगाना (120K+ दुर्भावनापूर्ण इमेज पुल डिटेक्ट)
- ✅ **बैकडोर्ड लाइब्रेरी का पता लगाना** - समझौता की गई निर्भरताओं को पकड़ना (xz-utils, liblzma घटनाएँ)
- ✅ **इमेज सिग्नेचर सत्यापन** - Notary/Cosign का उपयोग करके हस्ताक्षर सत्यापित करता है
- ✅ **फ़िशिंग सामग्री का पता लगाना** - सामाजिक इंजीनियरिंग के लिए दस्तावेज़ीकरण स्कैन करता है
- ✅ **दुर्भावनापूर्ण नेटवर्क गंतव्य** - C2 सर्वर, माइनिंग पूल, Tor नोड्स की पहचान करता है
#### 3. **उन्नत रहस्यों का पता लगाना** 🔑
40+ रहस्य पैटर्न जिसमें आधुनिक API शामिल हैं (2024 अपडेट):
- ✅ **क्लाउड प्रदाता**: AWS, GCP, Azure क्रेडेंशियल्स
- ✅ **संस्करण नियंत्रण**: GitHub, GitLab, Bitbucket टोकन
- ✅ **AI/ML API**: OpenAI, Anthropic, Hugging Face कुंजियाँ
- ✅ **भुगतान**: Stripe, PayPal, Square कुंजियाँ
- ✅ **संचार**: Slack, SendGrid, Twilio, Mailchimp
- ✅ **प्रमाणीकरण**: JWT टोकन, OAuth टोकन
- ✅ **क्रिप्टो**: निजी कुंजियाँ (RSA, SSH, PGP, EC, DSA), प्रमाणपत्र
- ✅ **डेटाबेस**: PostgreSQL, MySQL, MongoDB कनेक्शन स्ट्रिंग्स
- ✅ **Docker**: रजिस्ट्री प्रमाणीकरण टोकन
- ✅ **एंट्रॉपी विश्लेषण**: अज्ञात रहस्यों के लिए Shannon एंट्रॉपी गणना (>4.5 थ्रेशोल्ड)
#### 4. **CVE और भेद्यता स्कैनिंग** 🚨
महत्वपूर्ण 2024-2025 CVE का पता लगाना:
- ✅ **CVE-2024-21626** - runc कंटेनर एस्केप (CVSS 8.6)
- ✅ **CVE-2024-23651** - BuildKit कैश पॉइज़निंग RCE (CVSS 9.1)
- ✅ **CVE-2024-23652** - BuildKit रेस कंडीशन (CVSS 7.5)
- ✅ **CVE-2024-23653** - BuildKit विशेषाधिकार वृद्धि
- ✅ **CVE-2024-8695/8696** - Docker Desktop RCE (CVSS 8.8)
- ✅ **CVE-2025-9074** - Docker Desktop स्थानीय एक्सेस भेद्यता
- ✅ एंड-ऑफ-लाइफ़ बेस इमेज का पता लगाना
- ✅ ज्ञात संवेदनशील पैकेज स्कैनिंग
#### 5. **रनटाइम सुरक्षा विश्लेषण** ⚙️
कंटेनर रनटाइम हार्डनिंग जाँच:
- ✅ **लिनक्स क्षमताएँ ऑडिटिंग** - खतरनाक क्षमताओं का पता लगाना (CAP_SYS_ADMIN, CAP_NET_ADMIN, आदि)
- ✅ **Seccomp प्रोफ़ाइल सत्यापन** - सुनिश्चित करता है कि सिस्टम कॉल फ़िल्टरिंग सक्षम है
- ✅ **AppArmor/SELinux जाँच** - अनिवार्य एक्सेस नियंत्रण सत्यापन
- ✅ **विशेषाधिकार प्राप्त कंटेनर का पता लगाना** - पूर्ण होस्ट एक्सेस वाले कंटेनरों की पहचान करता है
- ✅ **नेमस्पेस अलगाव** - PID, IPC, नेटवर्क, उपयोगकर्ता नेमस्पेस जाँच
- ✅ **कंटेनर एस्केप संकेतक** - सामान्य एस्केप तकनीकों का पता लगाता है
### 📊 **रिपोर्टिंग और एकीकरण**
- **JSON** - मशीन-पठनीय आउटपुट स्वचालन के लिए
- **SARIF** - मूल एकीकरण इसके साथ:
- GitHub सुरक्षा टैब
- Azure DevOps
- VS Code एक्सटेंशन
- GitLab सुरक्षा डैशबोर्ड
- **सुंदर CLI** - इमोजी के साथ रंग-कोडित गंभीरता स्तर
- **निकास कोड** - CI/CD अनुकूल (0=साफ, 1=चेतावनी, 2=गंभीर)
### 🚀 **प्रदर्शन**
- ⚡ **Python विकल्पों से 10x तेज़**
- 🔄 **समवर्ती स्कैनिंग** Go goroutines के साथ
- 💾 **कम मेमोरी** फुटप्रिंट (~50-100MB)
- 📦 **एकल बाइनरी** - कोई निर्भरता नहीं
---
## 🆕 v2.0 में नया क्या है?
DockerScan v2.0 एक **पूर्ण पुनर्लेखन** है। यहाँ v1.x से बदलाव हैं:
### प्रमुख बदलाव
| Feature | v1.x (Python) | v2.0 (Go) |
|---------|---------------|-----------|
| **भाषा** | Python 3.5+ | Go 1.21+ |
| **प्रदर्शन** | ~500 इमेज/घंटा | ~5000 इमेज/घंटा |
| **मेमोरी उपयोग** | 200-500 MB | 50-100 MB |
| **वितरण** | pip install + निर्भरताएँ | एकल बाइनरी |
| **सुरक्षा स्कैनर** | 2 मॉड्यूल | 5 मॉड्यूल |
| **CIS बेंचमार्क** | आंशिक | पूर्ण v1.7.0 (80+ जाँच) |
| **आपूर्ति श्रृंखला** | ❌ उपलब्ध नहीं | ✅ 2024 शोध पर आधारित |
| **गुप्त पैटर्न** | 10 पैटर्न | 40+ पैटर्न |
| **CVE पता लगाना** | बुनियादी | 2024-2025 CVEs |
| **रनटाइम सुरक्षा** | ❌ उपलब्ध नहीं | ✅ पूर्ण क्षमताएँ ऑडिट |
| **SARIF आउटपुट** | ❌ उपलब्ध नहीं | ✅ पूर्ण समर्थन |
| **CI/CD एकीकरण** | मैन्युअल | मूल (निकास कोड, SARIF) |
### v1.x से संरक्षित क्या है
- ✅ **आक्रामक उपकरण** - इमेज ट्रोजनाइज़ेशन क्षमताएँ (v2.1 में जल्द आ रहा है)
- ✅ **रजिस्ट्री संचालन** - पुश, पुल, डिलीट संचालन (v2.1 में जल्द आ रहा है)
- ✅ **नेटवर्क स्कैनिंग** - Docker रजिस्ट्री खोज (v2.1 में जल्द आ रहा है)
### v2.0.5 में नया 🔐
- 🔑 **निजी रजिस्ट्री प्रमाणीकरण** - निजी रजिस्ट्रियों से इमेज स्कैन करने के लिए पूर्ण समर्थन (fixes #24)
- 🌐 **बहु-रजिस्ट्री समर्थन** - Docker Hub, GHCR, ECR, GCR, ACR, GitLab, और स्व-होस्टेड रजिस्ट्रियाँ
- 🔐 **एकाधिक प्रमाणीकरण विधियाँ** - पर्यावरण चर (CI/CD), CLI फ़्लैग (परीक्षण), Docker कॉन्फ़िग फ़ाइल (निर्बाध)
- 🎯 **स्मार्ट प्राथमिकता** - CLI फ़्लैग > ENV वेरिएबल्स > Docker कॉन्फ़िग (स्वचालित चयन)
- 📝 **उन्नत त्रुटि संदेश** - रजिस्ट्री-विशिष्ट संकेत (ECR टोकन समाप्ति, दर सीमाएँ, प्रमाणपत्र)
- 🧪 **व्यापक परीक्षण** - 64 परीक्षण मामले, 91.2% कवरेज, वास्तविक निजी रजिस्ट्री के साथ परीक्षण किया गया
- 📚 **पूर्ण दस्तावेज़ीकरण** - सभी प्रमुख क्लाउड रजिस्ट्रियों और प्रमाणीकरण विधियों के लिए उदाहरण
### v2.0.4 में नया
- 🗄️ **CVE डेटाबेस एकीकरण** - NVD डेटा के साथ स्थानीय SQLite डेटाबेस (2.5 वर्षों के CVEs)
- 🔄 **दैनिक स्वचालित अपडेट** - GitHub Action प्रतिदिन CVE डेटाबेस अपडेट करता है
- ⚡ **समानांतर CVE डाउनलोड** - तेज़ डेटाबेस निर्माण के लिए 4 वर्कर (nvd2sqlite)
- 🔁 **बैकऑफ़ के साथ पुनर्प्रयास** - दर-सीमित NVD API अनुरोधों के लिए स्वचालित पुनर्प्रयास
- 📦 **`--from-file` फ़्लैग** - स्थानीय फ़ाइल से CVE डेटाबेस स्थापित करें (ऑफ़लाइन/एयर-गैप्ड)
- 🔇 **शांत मोड (`-q`)** - CI/CD पाइपलाइनों के लिए बैनर दबाएँ
- 🧹 **कम झूठी सकारात्मकताएँ** - एंट्रॉपी फ़िल्टरिंग के साथ बेहतर गुप्त पता लगाना
### पुनर्लेखन क्यों?
1. **प्रदर्शन** - Go goroutines के साथ 10x तेज़ स्कैनिंग प्रदान करता है
2. **आधुनिक खतरे** - 2024-2025 हमले पैटर्न शामिल करता है
3. **एंटरप्राइज़ के लिए तैयार** - SARIF आउटपुट, निकास कोड, एकल बाइनरी वितरण
4. **विस्तार योग्यता** - कस्टम स्कैनर के लिए साफ प्लगइन आर्किटेक्चर
5. **रखरखाव योग्यता** - टाइप सुरक्षा, बेहतर त्रुटि प्रबंधन, योगदान देना आसान
---
## 📦 स्थापना
### विकल्प 1: पूर्व-निर्मित बाइनरी डाउनलोड करें (अनुशंसित)
प्री-कंपाइल्ड बाइनरीज़ स्वचालित रूप से GitHub Actions के माध्यम से प्रत्येक संस्करण टैग के लिए बनाई और जारी की जाती हैं।
**समर्थित प्लेटफ़ॉर्म:**
- **लिनक्स**: amd64, arm64, 386
- **macOS**: amd64 (Intel), arm64 (Apple Silicon)
- **विंडोज़**: amd64, arm64, 386
- **FreeBSD**: amd64
#### लिनक्स (amd64)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
```
#### Linux (arm64)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
```
#### macOS (Intel)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-amd64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
```
#### macOS (Apple Silicon)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
```
#### Windows (PowerShell)```powershell
Invoke-WebRequest -Uri "https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-windows-amd64.exe" -OutFile "dockerscan.exe"
```
#### डाउनलोड सत्यापित करें (वैकल्पिक लेकिन अनुशंसित)```bash
# Download checksums
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/checksums.txt -o checksums.txt
# Verify (Linux/macOS)
sha256sum -c checksums.txt --ignore-missing
```
### विकल्प 2: स्रोत से निर्माण करें```bash
# Clone repository
git clone https://github.com/cr0hn/dockerscan
cd dockerscan/dockerscan-v2
# Build
make build
# Install
sudo make install
# Or build manually
go build -o bin/dockerscan ./cmd/dockerscan
```
### विकल्प 3: Go इंस्टॉल```bash
go install github.com/cr0hn/dockerscan/v2/cmd/dockerscan@latest
```
---
## 🚀 त्वरित प्रारंभ
### पहली बार सेटअप
स्कैन करने से पहले, CVE डेटाबेस डाउनलोड करें (प्रतिदिन अपडेट, ~30MB संपीड़ित):```bash
# Download latest CVE database from GitHub
dockerscan update-db
```
> **सुझाव**: डेटाबेस GitHub Actions के माध्यम से प्रतिदिन अपडेट किया जाता है। नवीनतम CVE डेटा प्राप्त करने के लिए समय-समय पर `update-db` चलाएँ।
### मूल स्कैन```bash
# Scan a Docker image
dockerscan nginx:latest
# Scan with specific scanners
dockerscan --scanners cis,secrets ubuntu:22.04
# Scan and save reports
dockerscan alpine:latest --output /tmp/reports
# Quiet mode (suppress banner)
dockerscan -q nginx:latest
```
### उदाहरण आउटपुट```
╔══════════════════════════════════════════════════════════════════════════╗
║ ██████╗ ██████╗ ██████╗██╗ ██╗███████╗██████╗ ███████╗ ██████╗ █████╗ ███╗ ██╗
║ ██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗██╔════╝██╔════╝██╔══██╗████╗ ██║
║ ██║ ██║██║ ██║██║ █████╔╝ █████╗ ██████╔╝███████╗██║ ███████║██╔██╗ ██║
║ ██║ ██║██║ ██║██║ ██╔═██╗ ██╔══╝ ██╔══██╗╚════██║██║ ██╔══██║██║╚██╗██║
║ ██████╔╝╚██████╔╝╚██████╗██║ ██╗███████╗██║ ██║███████║╚██████╗██║ ██║██║ ╚████║
║ ║
║ Advanced Docker Security Scanner v2.0.0 ║
║ ║
║ Author: Daniel Garcia (cr0hn) ║
║ Website: https://cr0hn.com ║
╚══════════════════════════════════════════════════════════════════════════════════════╝
🔍 Scanning image: nginx:latest
═══════════════════════════════════════════════════════════════════
SCAN RESULTS
═══════════════════════════════════════════════════════════════════
📊 Summary:
Total Findings: 47
Duration: 2.3s
🔴 By Severity:
Critical: 8
High: 15
Medium: 18
Low: 6
📁 By Category:
CIS-Benchmark: 12
Secrets: 8
Supply-Chain: 5
Vulnerability: 10
Runtime-Security: 12
📄 JSON report saved to: dockerscan-report.json
📄 SARIF report saved to: dockerscan-report.sarif
```
---
## 📖 उपयोग
### कमांड लाइन विकल्प```bash
dockerscan [COMMAND] [OPTIONS] <IMAGE>
Commands:
scan Scan a Docker image (default)
update-db Download or update the CVE database
Options: --from-file <path> Install from local SQLite file
version Show version information
help Show help message
Options:
-h, --help Show help message
-v, --version Show version
-q, --quiet Suppress banner output (quiet mode)
--scanners SCANNERS Comma-separated list of scanners to run
(default: all)
Options: cis,secrets,supplychain,vulnerabilities,runtime
--output DIR Output directory for reports (default: .)
--only-critical Show only critical/high severity findings
--verbose, -v Show scan progress (scanner names, findings count, image pull status). Output to stderr.
--debug Show verbose output plus internal errors and technical details. Output to stderr.
Authentication (for private registries):
--registry-user <username> Registry username
--registry-password <password> Registry password (not recommended, use env vars)
--registry <url> Registry URL (optional, auto-detected from image)
--docker-config <path> Path to Docker config file (default: ~/.docker/config.json)
Environment variables (recommended for CI/CD):
DOCKER_USERNAME or REGISTRY_USERNAME Registry username
DOCKER_PASSWORD or REGISTRY_PASSWORD Registry password or token
DOCKER_REGISTRY or REGISTRY Registry URL (optional)
Exit Codes:
0 No issues found
1 HIGH severity issues found
2 CRITICAL severity found
```
### उदाहरण```bash
# Scan with all scanners (default)
dockerscan myapp:latest
# Only run specific scanners
dockerscan --scanners secrets,supplychain redis:7
# Save reports to specific directory
dockerscan --output /var/reports postgres:14
# Only show critical issues
dockerscan --only-critical production-app:v1.0
# Ver progreso del scan (scanner names, findings count, image pull status)
dockerscan --verbose ubuntu:22.04
# Debug detallado (errores internos, detalles técnicos)
dockerscan --debug ubuntu:22.04
# Scan private registry images (see Authentication section below)
dockerscan ghcr.io/myorg/private-app:v1.0
```
### 🔐 निजी रजिस्ट्री प्रमाणीकरण
DockerScan निजी रजिस्ट्रीज़ के साथ प्रमाणीकरण के लिए तीन विधियाँ प्रदान करता है:
#### विधि 1: Docker Config File (स्थानीय उपयोग के लिए अनुशंसित)
सबसे सुविधाजनक विधि - आपके मौजूदा Docker क्रेडेंशियल्स का उपयोग करता है:```bash
# First, authenticate with your registry using Docker
docker login ghcr.io
# Username: your-username
# Password: ghp_your-token-here
# Now DockerScan can use these credentials automatically
dockerscan ghcr.io/myorg/private-app:latest
```
DockerScan स्वचालित रूप से `~/.docker/config.json` से क्रेडेंशियल्स पढ़ता है। यह उन सभी रजिस्ट्रियों के साथ काम करता है जिनमें आपने `docker login` के साथ लॉगिन किया है।
**क्रेडेंशियल हेल्पर्स पूरी तरह से समर्थित हैं।** DockerScan क्रेडेंशियल्स को मूल रूप से इन माध्यमों से हल करता है:
- **`credsStore`** — वैश्विक क्रेडेंशियल हेल्पर (उदा. macOS पर Docker Desktop के साथ `osxkeychain`, Windows पर `wincred`, Linux पर `pass`)
- **`credHelpers`** — प्रति-रजिस्ट्री क्रेडेंशियल हेल्पर्स (`credsStore` पर प्राथमिकता लेता है)
- **स्वचालित फ़ॉलबैक** — यदि निर्दिष्ट हेल्पर बाइनरी स्थापित नहीं है, तो DockerScan `config.json` में प्लेनटेक्स्ट `auths` ब्लॉक पर वापस आ जाता है
**macOS पर Docker Desktop के साथ**, यह बिना किसी अतिरिक्त कॉन्फ़िगरेशन के तुरंत काम करता है:```json
{
"credsStore": "osxkeychain"
}
```
DockerScan पारदर्शी रूप से टोकन प्राप्त करने के लिए `docker-credential-osxkeychain` को कॉल करेगा, ताकि आपको कभी भी स्पष्ट रूप से क्रेडेंशियल देने की आवश्यकता न हो।
#### विधि 2: पर्यावरण चर (CI/CD के लिए अनुशंसित)
स्वचालित वातावरण और CI/CD पाइपलाइनों के लिए सर्वोत्तम:```bash
# Set environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=mytoken
# Scan private image
dockerscan ghcr.io/myorg/private-app:latest
# Or use alternative variable names
export REGISTRY_USERNAME=myusername
export REGISTRY_PASSWORD=mytoken
dockerscan myregistry.example.com/app:v1.0
```
**CI/CD उदाहरण (GitHub Actions):**```yaml
- name: Scan private image
env:
DOCKER_USERNAME: ${{ secrets.REGISTRY_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.REGISTRY_TOKEN }}
run: dockerscan ghcr.io/${{ github.repository }}:${{ github.sha }}
```
#### विधि 3: कमांड-लाइन फ़्लैग्स (अनुशंसित नहीं)
त्वरित परीक्षण के लिए केवल (क्रेडेंशियल्स प्रक्रिया सूची में दिखाई देते हैं):```bash
dockerscan --registry-user myuser --registry-password mytoken ghcr.io/myorg/app:v1
```
**सुरक्षा चेतावनी:** यह विधि आपके शेल इतिहास और प्रक्रिया सूची में क्रेडेंशियल्स को उजागर करती है। इसके बजाय पर्यावरण चर या Docker कॉन्फ़िग का उपयोग करें।
### रजिस्ट्री-विशिष्ट उदाहरण
#### Docker Hub (निजी रिपॉजिटरी)```bash
# Using Docker config
docker login docker.io
dockerscan myusername/private-repo:latest
# Using environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=dckr_pat_XXXXXXXXXXXXX
dockerscan myusername/private-repo:latest
```
#### GitHub Container Registry (GHCR)```bash
# Using Docker config
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
dockerscan ghcr.io/myorg/myapp:v1.0
# Using environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=ghp_XXXXXXXXXXXXXXXXXXXX
dockerscan ghcr.io/myorg/myapp:v1.0
```
#### AWS Elastic Container Registry (ECR)```bash
# Get login credentials from AWS
aws ecr get-login-password --region us-east-1 | \
docker login --username AWS --password-stdin \
123456789012.dkr.ecr.us-east-1.amazonaws.com
# Scan ECR image
dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
# Or use environment variables with ECR credentials
export DOCKER_USERNAME=AWS
export DOCKER_PASSWORD=$(aws ecr get-login-password --region us-east-1)
dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
```
#### Google Container Registry (GCR) / Artifact Registry```bash
# Authenticate with gcloud
gcloud auth configure-docker gcr.io
# Scan GCR image
dockerscan gcr.io/my-project/myapp:latest
# For Artifact Registry
gcloud auth configure-docker us-docker.pkg.dev
dockerscan us-docker.pkg.dev/my-project/my-repo/myapp:latest
# Or use service account JSON key
export DOCKER_USERNAME=_json_key
export DOCKER_PASSWORD="$(cat service-account-key.json)"
dockerscan gcr.io/my-project/myapp:latest
```
#### Azure Container Registry (ACR)```bash
# Login with Azure CLI
az acr login --name myregistry
# Scan ACR image
dockerscan myregistry.azurecr.io/myapp:v1.0
# Or use service principal credentials
export DOCKER_USERNAME=<service-principal-id>
export DOCKER_PASSWORD=<service-principal-password>
dockerscan myregistry.azurecr.io/myapp:v1.0
```
#### GitLab Container Registry```bash
# Using Docker config
docker login registry.gitlab.com
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest
# Using environment variables with deploy token
export DOCKER_USERNAME=gitlab+deploy-token-1
```
---
[Read more](https://github.com/cr0hn/dockerscan)