← Назад к вопросам

В чем разница между Docker registry и Docker Hub?

1.7 Middle🔥 101 комментариев
#DevOps и инфраструктура

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Разница между Docker Registry и Docker Hub

Когда вы собираете Docker образ, нужно где-то его хранить. Docker Registry и Docker Hub — это два способа хранения образов, но это разные вещи.

Docker Registry

Docker Registry — это сервис для хранения и распространения Docker образов. Это приложение, которое может работать на любом сервере. Registry отвечает за:

  • Хранение образов
  • Управление версиями (тегами)
  • Контроль доступа (кто может скачивать/загружать)
  • Управление слоями образа

Типы Registry:

  1. Public Registry — открытый для всех (например, Docker Hub)
  2. Private Registry — доступ только для авторизованных пользователей
  3. Self-hosted Registry — развёрнут на своём сервере
# Docker Registry — это просто приложение
# Развернуть свой Registry можно одной командой
docker run -d -p 5000:5000 --name my-registry registry:2

# Теперь можно использовать его локально
docker tag my-app:latest localhost:5000/my-app:latest
docker push localhost:5000/my-app:latest
docker pull localhost:5000/my-app:latest

Docker Hub

Docker Hub — это официальный публичный Docker Registry, управляемый компанией Docker. Это сервис, а не приложение.

Особенности:

  • Бесплатный публичный Registry
  • Платные приватные репозитории
  • Встроенное хранилище для образов
  • Веб-интерфейс для управления образами
  • Автоматические сборки (связь с GitHub/GitLab)
  • Сканирование уязвимостей
  • Организации и командная работа
# Работа с Docker Hub
# 1. Создаём образ с именем username/my-app
docker build -t myusername/my-app:1.0.0 .

# 2. Логинимся в Docker Hub
docker login

# 3. Загружаем образ в Docker Hub
docker push myusername/my-app:1.0.0

# 4. Другие люди могут скачать образ
docker pull myusername/my-app:1.0.0

Сравнительная таблица

ПараметрDocker RegistryDocker Hub
ТипПриложениеSaaS сервис
РазвёртываниеSelf-hosted или облакоОблако Docker Inc
СтоимостьБесплатно (вы платите за хостинг)Бесплатно для public, платно для private
КонтрольПолный контрольDocker Inc управляет
ИнтеграцииМинимальныеВстроены GitHub, GitLab, Jenkins
Веб-интерфейсОпциональноДа, встроен
МасштабируемостьЗависит от вашей инфраструктурыУправляется Docker Inc
БезопасностьВы ответственныDocker Inc ответственен

Другие альтернативы

Amazon ECR (Elastic Container Registry)

# Для использования AWS
aws ecr create-repository --repository-name my-app

docker tag my-app:latest 123456789.dkr.ecr.us-east-1.amazonaws.com/my-app:latest
docker push 123456789.dkr.ecr.us-east-1.amazonaws.com/my-app:latest

Google Container Registry (GCR)

# Для использования Google Cloud
gcloud auth configure-docker

docker tag my-app:latest gcr.io/my-project/my-app:latest
docker push gcr.io/my-project/my-app:latest

GitHub Container Registry (GHCR)

# Использование GitHub для хранения образов
docker tag my-app:latest ghcr.io/myusername/my-app:latest
docker push ghcr.io/myusername/my-app:latest

GitLab Container Registry

# Интегрировано с GitLab
docker tag my-app:latest registry.gitlab.com/myusername/my-app:latest
docker push registry.gitlab.com/myusername/my-app:latest

Когда что использовать

Docker Hub подходит если:

  • Новый проект и нужна простота
  • Open-source проект (публичный)
  • Нужна встроенная интеграция с GitHub
  • Небольшая команда
  • Бюджет ограничен

Self-hosted Registry (Docker Registry) подходит если:

  • Требуется полный контроль
  • Данные должны быть на своём сервере
  • High-security требования
  • Большое количество образов
  • Интеграция с внутренней инфраструктурой

ECR/GCR/GHCR подходит если:

  • Используется облачная платформа (AWS/Google/GitHub)
  • Нужна интеграция с другими сервисами этой платформы
  • Требуется масштабируемость и надёжность
  • Готовы платить за облачные сервисы

Практический пример

# Docker Compose с использованием разных Registry
version: '3.8'

services:
  # Образ из Docker Hub
  postgres:
    image: postgres:15-alpine
  
  # Наш приватный образ из Docker Hub
  api:
    image: myusername/myapp:1.0.0
    environment:
      - DATABASE_URL=postgres://postgres:password@postgres:5432/mydb
  
  # Образ из AWS ECR
  worker:
    image: 123456789.dkr.ecr.us-east-1.amazonaws.com/worker:latest
  
  # Образ из GitHub Container Registry
  cache:
    image: ghcr.io/owner/redis-custom:latest

Заключение

Docker Registry — это технология/протокол для хранения образов, Docker Hub — это конкретный сервис. Выбирайте в зависимости от ваших требований по безопасности, масштабируемости и интеграции.

В чем разница между Docker registry и Docker Hub? | PrepBro