Ответ
Ключевое различие в том, что Docker Registry — это общее название технологии (открытый стандарт и его эталонная реализация) для хранения Docker-образов, а Docker Hub — это конкретный публичный сервис (SaaS), который эту технологию использует.
Docker Registry
Это stateless-сервер для хранения и распространения Docker-образов. Его можно развернуть самостоятельно в своей инфраструктуре.
- Назначение: Создание приватного хранилища образов.
- Примеры реализаций: GitLab Registry, Amazon ECR, Google Artifact Registry, или self-hosted инстанс.
Пример запуска собственного Registry:
# Запускает локальный Docker Registry на порту 5000
docker run -d -p 5000:5000 --restart=always --name registry registry:2
# Тегируем образ для отправки в локальный Registry
docker tag my-app:latest localhost:5000/my-app
# Отправляем образ
docker push localhost:5000/my-app
Docker Hub
Это официальный облачный реестр от компании Docker. Он является реестром по умолчанию для Docker-клиента.
- Назначение: Публичное и приватное хранение образов, доступ к официальным образам.
- Возможности: Автоматические сборки, сканирование на уязвимости, веб-интерфейс.
Пример использования Docker Hub:
# Docker-клиент по умолчанию ищет образ в Docker Hub
docker pull python:3.10
Итог
Характеристика | Docker Registry (Self-Hosted) | Docker Hub (SaaS) |
---|---|---|
Суть | Технология/ПО | Конкретный сервис |
Размещение | Локально, в облаке (своими силами) | В облаке Docker Inc. |
Управление | Полный контроль | Ограничено тарифным планом |
Основной кейс | Приватные образы внутри компании | Публичные и официальные образы |