Что такое Docker registry? Как публиковать образы?
Подробный ответ
Что такое 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:abc1234Login и 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.
Оцени свой прогресс