Куда загружаются (push) Docker-образы с помощью команды `docker push`?

Ответ

Docker-образы загружаются в реестр образов (Docker Registry). Реестр — это централизованное хранилище для версионирования и распространения образов.

Существует два основных типа реестров:

  1. Публичные реестры

    Доступны всем. Самый известный — Docker Hub, который используется по умолчанию, если не указан другой реестр.

  2. Приватные реестры

    Используются внутри компаний для хранения проприетарных или чувствительных образов. Обеспечивают безопасность и контроль доступа.

    • Облачные решения: AWS ECR, Azure Container Registry, GCP Artifact Registry.
    • Self-hosted решения: Harbor, Nexus, GitLab Container Registry.

Пример загрузки в Docker Hub:

# 1. Аутентификация в реестре (в данном случае Docker Hub)
docker login

# 2. Присвоение образу тега в формате <username>/<image>:<tag>
# Для Docker Hub имя реестра можно опустить
docker tag my-app:1.0 myusername/my-app:1.0

# 3. Загрузка образа в реестр
docker push myusername/my-app:1.0

Пример для приватного реестра:

# Для приватного реестра нужно указать его адрес в теге
docker tag my-app:1.0 my-private-registry.company.com/project/my-app:1.0
docker push my-private-registry.company.com/project/my-app:1.0