Короткий ответ
Registry — сервис хранения и распространения образов по именам и тегам/дайджестам (поддерживает docker push/docker pull); Docker Hub — крупнейший публичный registry, но в компаниях часто используют приватные реестры (Harbor, ECR, GCR, GitLab Registry и др.).
Как это работает подробнее
образ идентифицируется полным именем вида [registry-host/]namespace/repository:tag; если хост реестра не указан, по умолчанию используется Docker Hub. docker pull скачивает слои образа из реестра, docker push — загружает их туда, если у пользователя есть права на репозиторий.
Пример кода
Пример конфигурации
$ docker pull nginx:1.25
$ docker tag nginx:1.25 registry.example.com/team/nginx:1.25
$ docker push registry.example.com/team/nginx:1.25Что использовать на практике
- Практика. публичные образы с Docker Hub удобны для готовых инструментов (базовые образы, популярные сервисы), но для внутренних приложений компании обычно нужен приватный реестр — с контролем доступа, сканированием на уязвимости и нередко географической близостью к инфраструктуре для быстрого
pull.
Подводные камни
- Риск. тянут неизвестные образы из публичных реестров без проверки источника (официальный образ или произвольный пользовательский) — произвольные образы могут содержать уязвимости или вредоносный код; не указывают явно реестр в имени образа, из-за чего не очевидно, откуда реально приходит артефакт.