PRO

Что такое Docker registry? Как публиковать образы?

Docker registry — сервис для хранения и распространения Docker images. Примеры registry: Docker Hub, GitHub Container Registry, GitLab Container Registry и облачные registry. Чтобы опубликовать image, нужно присвоить ему имя registry/repository:tag, выполнить login и push.
Подробный ответ

Что такое Docker registry

Docker registry хранит Docker images по репозиториям и тегам. Разработчики и CI/CD публикуют туда собранные образы, а серверы и оркестраторы скачивают их для запуска.

Примеры registry

  • Docker Hub — публичный и приватный registry Docker;

  • GitHub Container Registry — ghcr.io;

  • GitLab Container Registry;

  • Amazon ECR, Google Artifact Registry, Azure Container Registry;

  • частный self-hosted registry для внутренней инфраструктуры.

Тегирование image

Перед отправкой нужно дать image полное имя, включающее адрес registry, repository и tag.

docker build -t my-app:local .
docker tag my-app:local ghcr.io/acme/my-app:1.4.0
docker tag my-app:local ghcr.io/acme/my-app:abc1234

Login и push

docker login ghcr.io
docker push ghcr.io/acme/my-app:1.4.0
docker push ghcr.io/acme/my-app:abc1234

Как скачать image

docker pull ghcr.io/acme/my-app:1.4.0
docker run ghcr.io/acme/my-app:1.4.0

Стратегия тегов

Для production полезно публиковать semver-теги, например 1.4.0, и commit SHA, например abc1234. Тег latest можно добавлять как удобную ссылку, но не стоит использовать его как единственный идентификатор production-релиза. Самый строгий вариант — деплоить образ по digest.

Безопасность

Доступ к private registry должен выполняться по токенам с минимальными правами. В CI применяют временные или защищённые credentials, запускают vulnerability scan и при необходимости подписывают образы перед публикацией.

Как ответить на собеседовании

Docker registry хранит и раздаёт images. Я собираю image, тегирую его полным именем вроде ghcr.io/company/app:1.4.0, выполняю docker login и docker push. Для воспроизводимого деплоя публикую версию и commit SHA, а не полагаюсь только на тег latest.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге