Что такое Docker Registry и какие типы существуют?

«Что такое Docker Registry и какие типы существуют?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Docker Registry — это серверное приложение для хранения и распространения Docker-образов.

Типы реестров:

  1. Публичные (Public): Открыты для всех.
    • Docker Hub — стандартный публичный реестр (docker.io). Содержит официальные образы (nginx, postgres) и пользовательские.
  2. Приватные (Private): Для внутреннего использования в организации.
    • Облачные: AWS ECR, Google Container Registry (GCR), Azure Container Registry (ACR).
    • Self-hosted: Запуск собственного реестра с помощью образа registry:2.

Базовые операции:

# Авторизация в реестре (например, Docker Hub)
docker login

# Помечаем образ для загрузки в конкретный реестр
docker tag my-app:latest mycompany/private-repo/my-app:v1.0

# Загружаем (push) образ в реестр
docker push mycompany/private-repo/my-app:v1.0

# Скачиваем (pull) образ из реестра
docker pull mycompany/private-repo/my-app:v1.0

Почему это ключевой компонент? Реестр — это централизованное хранилище образов, необходимое для CI/CD, развертывания в кластерах (Kubernetes) и обеспечения контроля версий и безопасности образов.