Google Container Registry — руководство по загрузке и использованию

Быстрые ссылки
Что такое Google Container Registry?
Как загрузить образ в GCR
Что такое Google Container Registry?
Google Container Registry (GCR) — это приватный сервис хранения образов контейнеров Docker, привязанный к вашему аккаунту Google Cloud Platform (GCP). Он служит централизованным хранилищем образов, которые вы затем используете для развёртывания в сервисах GCP, например в Cloud Run или Google Kubernetes Engine (GKE).
Ниже — ключевые моменты по назначению и возможностям GCR:
- Хранение образов: образы лежат в бакете Cloud Storage и доступны по областям gcr.io, eu.gcr.io, asia.gcr.io.
- Приватность: по умолчанию репозитории приватны и требуют аутентификации через gcloud.
- Интеграция: работает с командами docker и утилитой gcloud; образ можно тянуть/пихать в пайплайны CI/CD.
- Дополнительные функции: опциональное сканирование на уязвимости (Vulnerability Scanning).
Важно: сервис требует включённого биллинга в проекте GCP. Стоимость хранения соответствует тарифам Cloud Storage (например, указанная ориентировочно ставка — $0.026 за ГБ в месяц), а также оплачивается исходящий трафик по стандартным тарифам.
Примечание: включение Vulnerability Scanning — опция, которая может применяться в зависимости от требований безопасности и бюджета.
Когда GCR подходит и когда не подходит
Когда подходит:
- Нужно приватное, интегрированное с GCP хранилище образов.
- Автоматическая интеграция с Cloud Build, Cloud Run, GKE.
- Требуется простая схема аутентификации через gcloud для команд разработчиков.
Когда не подходит:
- Если вам нужен мультиоблачный реестр с единым UI/политиками вне GCP — стоит рассмотреть сторонние решения.
- Если требуется единый реестр для пакетов OCI с более гибкой классификацией и политиками доступа — обратите внимание на Artifact Registry.
Перед началом: что нужно установить и включить
- Установите Google Cloud SDK — он предоставляет утилиту gcloud.
- Установите Docker (локально или на CI-агенте), чтобы собирать и пушить образы.
- Включите API Container Registry в консоли GCP: нажмите “Enable” для соответствующего API.

Важно: если вы используете CI/CD, убедитесь, что в среде агентa настроена аутентификация (описано ниже).
Пошаговая инструкция: загрузка образа в GCR (quick start)
- Настройте Docker для использования gcloud как credential helper:
gcloud auth configure-dockerЭта команда автоматически обновит ваш ~/.docker/config.json и добавит gcloud как помощник учётных данных для доменов gcr.io, eu.gcr.io и asia.gcr.io.
- Узнайте идентификатор проекта (Project ID). В консоли GCP он видим в выпадающем меню “Select Project” — скопируйте его.

- Тегирование образа для GCR (по умолчанию тег latest):
docker tag [SOURCE_IMAGE] gcr.io/[PROJECT-ID]/[IMAGE]Если нужно указать конкретный тег, добавьте “:tag”:
docker tag [SOURCE_IMAGE] gcr.io/[PROJECT-ID]/[IMAGE]:v1.2.3- Загрузка (push) образа в GCR:
docker push gcr.io/[PROJECT-ID]/[IMAGE]- Проверка: образы будут видны в консоли Container Registry или через gcloud:
gcloud container images list-tags gcr.io/[PROJECT-ID]/[IMAGE]- Чтобы вручную скачать (pull) образ:
docker pull gcr.io/[PROJECT-ID]/[IMAGE]:[TAG]Замечание: на машине, выполняющей pull, должен быть настроен gcloud как credential helper, иначе аутентификация не сработает.
Регионы и хостнеймы
- gcr.io — бакет по умолчанию (США).
- eu.gcr.io — Европа.
- asia.gcr.io — Азия.
Выберите регион, ближайший к вашим потребителям или кластеру, чтобы снизить задержки и расходы на трафик.
Безопасность и сканирование уязвимостей
- Вы можете включить Vulnerability Scanning для обнаружения известных уязвимостей в базовых образах и слоях. Это опционально и требует дополнительных настроек и биллинга.
- Для строгой политики безопасности используйте сканирование в CI до пуша образа и реализуйте политику запрета деплоя неподписанных или несеверифицированных образов.
Альтернативы и когда выбирать их
- Artifact Registry — современная замена GCR с поддержкой нескольких форматов (Docker/OCI/Maven/NPM) и более гибкой моделью управления доступом. Стоит рассмотреть при миграции или при требовании расширенного управления пакетами.
- Docker Hub — удобен для публичных образов и открытого совместного использования, но менее подходящ для приватного корпоративного хранения в GCP.
- Частные реестры (Harbor, JFrog Artifactory) — подходят для мультиоблачных стратегий или если нужен единый интерфейс для многих типов пакетов.
Чеклист для быстрого развёртывания (role-based)
Разработчик:
- Собрал локальный образ и проверил его поведение.
- Проставил корректный тег: gcr.io/[PROJECT-ID]/[IMAGE]:[TAG].
- Запустил локальное тестирование контейнера.
DevOps/CI:
- На CI настроен gcloud и выполнен gcloud auth configure-docker.
- Есть шаг сборки → тегирование → пуш в GCR.
- Развертывание подтягивает образы из GCR и использует управляемую учетную запись сервиса.
Security:
- Сканирование образов настроено в пайплайне или включено Vulnerability Scanning.
- Политики доступа (IAM) ограничивают пуш/пулл к нужным аккаунтам сервисов.
Мини-методология: безопасность и надёжность
- Сборка: минимизировать слои и использовать обновлённые базовые образы.
- Сканирование: запускать статический анализ/сканирование уязвимостей в CI.
- Подпись/верификация: использовать подпись образов, если требуется строгий контроль.
- Развёртывание: динамические теги в CI с канареечным развёртыванием.
Критерии приёмки
- Образ доступен в GCR по ожидаемому имени и тегу.
- CI успешно пушит образ без ошибок аутентификации.
- При развёртывании в GKE/Cloud Run приложение поднимается из этого образа.
- Сканы уязвимостей не показывают критичных проблем (или известные проблемы задокументированы и приняты).
Типичные ошибки и как их исправить
- Ошибка: «unauthorized: authentication required». Причина: gcloud не настроен как credential helper. Решение: запустить gcloud auth configure-docker и повторить.
- Ошибка: невидимая метка/образ. Проверьте, тегировали ли вы образ с правильным Project ID и региональным доменом (gcr.io / eu.gcr.io).
- Ошибка: роль IAM не позволяет пушить/тянуть. Проверьте роли сервиса/пользователя (Storage Object Admin/Viewer и соответствующие роли Container Registry).
Краткий глоссарий
- GCR: Google Container Registry — приватный реестр образов Docker в GCP.
- gcloud: CLI для управления Google Cloud.
- Push/Pull: загрузка/скачивание образов Docker.
- Tag: метка образа, указывающая имя и версию.
Итог
Google Container Registry — простое и интегрированное решение для хранения Docker-образов в GCP. Для новых проектов рассмотрите Artifact Registry как более современную альтернативу. Всегда настраивайте аутентификацию через gcloud, используйте сканирование и автоматизируйте деплой через CI/CD.
Важно: проверьте актуальные тарифы хранения и сканирования в консоли GCP перед массовым использованием.
Похожие материалы
Восстановление повреждённых архивов в Windows
Сброс пароля Snapchat — быстро и безопасно
GlobalProtect для Windows 11: установка и настройка
Форматирование диаграмм в Excel — руководство
Уведомления об неизвестных трекерах на Android