
Самый всесторонний сканер безопасности Docker
<div align="center">
<img src="https://assets.kitploit.com/production/public/readmes/1309/3345979faae1cdabbe2912dfcaf46221df5cb53697630a8e8dcc5eebf814e949.png" alt="Логотип DockerScan" width="200">
# DockerScan v2.0
### *Самый всеобъемлющий сканер безопасности Docker*
[](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)
---
[Особенности](#-особенности) •
[Установка](#-установка) •
[Быстрый старт](#-быстрый-старт) •
[Документация](#-документация) •
[Сценарии использования](#-сценарии-использования) •
[Что нового](#-что-нового-в-v20) •
[Участие в разработке](#-участие-в-разработке)
</div>
---
## 📑 Содержание
- [Обзор](#-обзор)
- [Особенности](#-особенности)
- [Что нового в v2.0](#-что-нового-в-v20)
- [Установка](#-установка)
- [Быстрый старт](#-быстрый-старт)
- [Использование](#-использование)
- [Аутентификация в частном реестре](#-аутентификация-в-частном-реестре)
- [Сканеры безопасности](#-сканеры-безопасности)
- [Форматы вывода](#-форматы-вывода)
- [Сценарии использования](#-сценарии-использования)
- [Сравнение](#-сравнение-с-другими-инструментами)
- [Архитектура](#-архитектура)
- [Участие в разработке](#-участие-в-разработке)
- [Ссылки](#-ссылки)
- [Лицензия](#-лицензия)
- [Автор](#-автор)
---
## 🎯 Обзор
**DockerScan v2.0** — это сканер безопасности нового поколения для контейнеров и образов Docker, полностью переписанный на Go. Он объединяет несколько методов сканирования безопасности на основе последних исследований 2024–2025 годов, отраслевых стандартов (CIS Benchmark, NIST SP 800-190) и реальных шаблонов атак, обнаруженных в производственных средах.
### Почему DockerScan v2.0?
- ✅ **Самый всеобъемлющий**: Объединяет 5+ методов сканирования безопасности в одном инструменте
- ✅ **Новейшие исследования**: Основан на атаках на цепочки поставок 2024–2025 годов и CVE
- ✅ **Готов к производству**: Вывод SARIF для CI/CD, коды завершения для автоматизации
- ✅ **Молниеносная скорость**: Написан на Go с конкурентным сканированием
- ✅ **Расширяемый**: Архитектура плагинов для пользовательских сканеров
- ✅ **Бесплатно и с открытым исходным кодом**: Лицензия BSD-3
---
## 🌟 Особенности
### 🛡️ **Модули сканирования безопасности**
#### 1. **CIS Docker Benchmark v1.7.0**
Полная проверка соответствия с более чем 80 автоматизированными контролями:
- ✅ Безопасность конфигурации хоста (13 проверок)
- ✅ Укрепление демона Docker (18 проверок)
- ✅ Права доступа к файлам и каталогам (9 проверок)
- ✅ Лучшие практики образов контейнеров (13 проверок)
- ✅ Проверка безопасности во время выполнения (31+ проверок)
- ✅ Соответствие операционным требованиям безопасности
#### 2. **Обнаружение атак на цепочку поставок** 🆕
Основано на реальных кампаниях атак 2024 года:
- ✅ **Обнаружение контейнеров без образов** — Выявляет вредоносные контейнеры без фактических слоёв (4 млн+ найдено на Docker Hub)
- ✅ **Обнаружение криптомайнеров** — Выявляет майнинговое вредоносное ПО (обнаружено 120 тыс.+ вредоносных загрузок образов)
- ✅ **Обнаружение библиотек с бэкдорами** — Ловит скомпрометированные зависимости (инциденты с 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**: Токены аутентификации реестра
- ✅ **Энтропийный анализ**: Расчёт энтропии Шеннона для неизвестных секретов (порог >4.5)
#### 4. **Сканирование CVE и уязвимостей** 🚨
Обнаружение критических CVE 2024–2025:
- ✅ **CVE-2024-21626** — Побег из контейнера runc (CVSS 8.6)
- ✅ **CVE-2024-23651** — RCE через отравление кэша BuildKit (CVSS 9.1)
- ✅ **CVE-2024-23652** — Состояние гонки BuildKit (CVSS 7.5)
- ✅ **CVE-2024-23653** — Повышение привилегий BuildKit
- ✅ **CVE-2024-8695/8696** — RCE в Docker Desktop (CVSS 8.8)
- ✅ **CVE-2025-9074** — Уязвимость локального доступа Docker Desktop
- ✅ Обнаружение устаревших базовых образов
- ✅ Сканирование известных уязвимых пакетов
#### 5. **Анализ безопасности времени выполнения** ⚙️
Проверки укрепления контейнеров во время выполнения:
- ✅ **Аудит возможностей Linux** — Выявляет опасные возможности (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=критично)
### 🚀 **Производительность**
- ⚡ **В 10 раз быстрее** альтернатив на Python
- 🔄 **Конкурентное сканирование** с помощью горутин Go
- 💾 **Низкое потребление памяти** (~50–100 МБ)
- 📦 **Один бинарный файл** — без зависимостей
---
## 🆕 Что нового в v2.0?
DockerScan v2.0 — это **полная переработка** с нуля. Вот что изменилось по сравнению с v1.x:
### Основные изменения
| Функция | v1.x (Python) | v2.0 (Go) |
|---------|--------------|-----------|
| **Язык** | Python 3.5+ | Go 1.21+ |
| **Производительность** | ~500 образов/час | ~5000 образов/час |
| **Использование памяти** | 200–500 МБ | 50–100 МБ |
| **Распространение** | pip install + зависимости | Один бинарный файл |
| **Сканеры безопасности** | 2 модуля | 5 модулей |
| **CIS Benchmark** | Частично | Полный v1.7.0 (80+ проверок) |
| **Цепочка поставок** | ❌ Недоступно | ✅ Основано на исследованиях 2024 |
| **Шаблоны секретов** | 10 шаблонов | 40+ шаблонов |
| **Обнаружение CVE** | Базовое | CVE 2024–2025 |
| **Безопасность времени выполнения** | ❌ Недоступно | ✅ Полный аудит возможностей |
| **Вывод SARIF** | ❌ Недоступно | ✅ Полная поддержка |
| **Интеграция CI/CD** | Вручную | Нативная (коды завершения, SARIF) |
### Что сохранено из v1.x
- ✅ **Инструменты атаки** — Возможность троянизации образов (скоро в v2.1)
- ✅ **Операции с реестром** — Push, pull, delete (скоро в v2.1)
- ✅ **Сканирование сети** — Обнаружение реестров Docker (скоро в v2.1)
### Новое в v2.0.5 🔐
- 🔑 **Аутентификация в частном реестре** — Полная поддержка сканирования образов из частных реестров (исправляет #24)
- 🌐 **Поддержка нескольких реестров** — Docker Hub, GHCR, ECR, GCR, ACR, GitLab и собственные реестры
- 🔐 **Несколько методов аутентификации** — Переменные окружения (CI/CD), флаги CLI (тестирование), файл конфигурации Docker (бесшовно)
- 🎯 **Умный приоритет аутентификации** — Флаги CLI > Переменные окружения > Docker config (автоматический выбор)
- 📝 **Улучшенные сообщения об ошибках** — Подсказки для конкретных реестров (истечение токенов ECR, ограничения скорости, сертификаты)
- 🧪 **Комплексное тестирование** — 64 тестовых случая, 91.2% покрытия, протестировано с реальным частным реестром
- 📚 **Полная документация** — Примеры для всех основных облачных реестров и методов аутентификации
### Новое в v2.0.4
- 🗄️ **Интеграция базы данных CVE** — Локальная база данных SQLite с данными NVD (2.5 года CVE)
- 🔄 **Ежедневные автообновления** — GitHub Action обновляет базу CVE каждый день
- ⚡ **Параллельные загрузки CVE** — 4 рабочих процесса для более быстрой сборки базы (nvd2sqlite)
- 🔁 **Повторные попытки с задержкой** — Автоматические повторные попытки при ограничении запросов API NVD
- 📦 **Флаг `--from-file`** — Установка базы CVE из локального файла (офлайн/air-gapped)
- 🔇 **Тихий режим (`-q`)** — Подавление баннера для конвейеров CI/CD
- 🧹 **Уменьшение ложных срабатываний** — Улучшенное обнаружение секретов с фильтрацией энтропии
### Почему переработка?
1. **Производительность** — Go обеспечивает в 10 раз более быстрое сканирование с помощью горутин
2. **Современные угрозы** — Включает шаблоны атак 2024–2025 годов
3. **Готовность к предприятию** — Вывод SARIF, коды завершения, распространение в одном бинарном файле
4. **Расширяемость** — Чистая архитектура плагинов для пользовательских сканеров
5. **Обслуживаемость** — Безопасность типов, лучшая обработка ошибок, проще вносить вклад
---
## 📦 Установка
### Вариант 1: Загрузить готовый бинарный файл (рекомендуется)
Предварительно скомпилированные бинарные файлы автоматически собираются и публикуются через GitHub Actions для каждого тега версии.
**Поддерживаемые платформы:**
- **Linux**: amd64, arm64, 386
- **macOS**: amd64 (Intel), arm64 (Apple Silicon)
- **Windows**: amd64, arm64, 386
- **FreeBSD**: amd64
#### Linux (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 Install```bash
go install github.com/cr0hn/dockerscan/v2/cmd/dockerscan@latest
```
---
## 🚀 Быстрый старт
### Первоначальная настройка
Перед сканированием загрузите базу данных CVE (обновляется ежедневно, ~30 МБ в сжатом виде):```bash
# Download latest CVE database from GitHub
dockerscan update-db
```
> **Совет**: База данных обновляется ежедневно через GitHub Actions. Запускайте `update-db` периодически, чтобы получить последние данные CVE.
### Базовое сканирование```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 (рекомендуется для локального использования)
Самый удобный метод — использует ваши существующие учетные данные 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`** — глобальный помощник учетных данных (например, `osxkeychain` на macOS с Docker Desktop, `wincred` на Windows, `pass` на Linux)
- **`credHelpers`** — помощники учетных данных для отдельных реестров (имеют приоритет над `credsStore`)
- **Автоматический откат** — если указанный бинарный файл помощника не установлен, DockerScan возвращается к блоку `auths` в открытом виде в `config.json`
На **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 }}
```
#### Method 3: Command-Line Flags (Not Recommended)
For quick testing only (credentials visible in process list):```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
export DOCKER_PASSWORD=DEPLOY_TOKEN_HERE
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest
```
#### Самостоятельно размещённые/Частные реестры```bash
# Standard authentication
docker login myregistry.example.com:5000
dockerscan myregistry.example.com:5000/myapp:latest
# With environment variables
export DOCKER_USERNAME=admin
export DOCKER_PASSWORD=secret
dockerscan myregistry.example.com:5000/myapp:latest
# Insecure registries (not recommended for production)
# Add to Docker daemon config: /etc/docker/daemon.json
# {
# "insecure-registries": ["myregistry.example.com:5000"]
# }
```
### Устранение неполадок аутентификации
#### Распространенные проблемы
**1. ошибка "authentication required"**```bash
# Make sure you're logged in
docker login <registry>
# Or set environment variables
export DOCKER_USERNAME=your-username
export DOCKER_PASSWORD=your-token
```
**2. Ошибка "unauthorized: authentication failed"**
- Убедитесь, что ваши учетные данные верны
- Проверьте, не истек ли срок действия вашего токена (особенно для облачных провайдеров)
- Убедитесь, что ваша учетная запись имеет разрешения на извлечение образа
**3. AWS ECR "authorization token has expired"**```bash
# ECR tokens expire after 12 hours - refresh them
aws ecr get-login-password --region us-east-1 | \
docker login --username AWS --password-stdin \
123456789012.dkr.ecr.us-east-1.amazonaws.com
```
**4. Лимиты на Docker Hub**
- Аутентифицируйтесь для увеличения лимитов (200 загрузок за 6 часов для бесплатных аккаунтов)
- Рассмотрите использование аккаунта Docker Hub Pro для более высоких лимитов
**5. Ошибки сертификатов с самоподписанными сертификатами**
- Добавьте сертификат ЦС в системное хранилище доверенных сертификатов
- Или настройте Docker на доверие реестру (см. документацию Docker)
---
## 🔍 Сканеры безопасности
### CIS Docker Benchmark
```
---
[Read more](https://github.com/cr0hn/dockerscan)