Поиск по сайту:

Как отправлять и извлекать образы Docker из реестра контейнеров Google


Google Container Registry — это частный сервис хранения образов Docker, используемый для запуска контейнерных приложений. Он используется для размещения образов для развертывания в других контейнерных службах GCP, таких как Cloud Run и Kubernetes Engine.

Что такое реестр контейнеров Google?

При работе с образами Docker вы часто будете отправлять и извлекать их из реестра контейнеров, используемого для хранения и быстрого централизованного доступа. Наиболее популярным реестром является официальный Docker Hub, который является общедоступным, но многие облачные провайдеры предлагают частные реестры контейнеров. Реестр контейнеров Google является одним из них, предоставляя собственный реестр для вашей учетной записи GCP.

Его довольно просто использовать. С некоторой конфигурацией Docker вы должны иметь возможность отправлять и получать изображения с помощью docker tag и docker push, а затем развертывать эти обновления как обновления контейнера в Kubernetes Engine.

Реестр контейнеров недоступен для учетных записей, для которых не включена оплата. Однако это очень дешево: контейнеры хранятся в корзине Cloud Storage, и вы просто платите стандартные 0,026 доллара США за ГБ в месяц за хранилище, а также стандартную плату за передачу данных за исходящий трафик. При желании вы можете включить «Сканирование уязвимостей», которое стоит 0,26 доллара США за обновление контейнера для поиска уязвимостей в базовом программном обеспечении, используемом в контейнере.

Отправка изображений в GCR

Прежде чем мы начнем, вам нужно убедиться, что вы установили Google Cloud SDK, который предоставит вам доступ к интерфейсу командной строки gcloud CLI. Вам также, конечно, понадобится установленный Docker для работы с образами контейнеров.

Вам нужно включить Container Registry API. Нажмите «Включить».

Поскольку репозитории являются частными, вам необходимо настроить Docker для работы с аутентификацией gcloud, что можно сделать автоматически с помощью следующей команды, которая внесет несколько изменений в вашу конфигурацию Docker, чтобы добавить интерфейс командной строки gcloud в качестве помощника по учетным данным:

gcloud auth configure-docker

Вам понадобится идентификатор вашего проекта для следующего шага; это видно из раскрывающегося списка «Выбрать проект» в консоли GCP. Скопируйте идентификатор.

Затем вы можете пометить изображение как обычно, используя docker tag, указав только собственное имя хоста для GCR. По умолчанию gcr.io сохраняет изображения в сегменте облачного хранилища, расположенном в США. Вы также можете использовать eu.gcr.io и asia.gcr.io для этих регионов.

docker tag [SOURCE_IMAGE] gcr.io/[PROJECT-ID]/[IMAGE]

Это помечает образ как latest, который используется по умолчанию для новых развертываний, но если вы хотите использовать другой тег, вы можете добавить :tag к имени образа.

После того, как он будет помечен, вы можете загрузить его в GCR с помощью docker push:

docker push gcr.io/[PROJECT-ID]/[IMAGE]

После загрузки они будут видны в консоли Container Registry или при запуске списков тегов изображений контейнеров gcloud, и вы сможете использовать их для своих развертываний Cloud Run и Kubernetes.

Если вы хотите вручную вытащить изображение, вы можете сделать это с помощью docker pull:

docker pull gcr.io/[PROJECT-ID]/[IMAGE]:[TAG]

Вам, конечно, потребуется установить и настроить gcloud в качестве помощника по учетным данным на машине, выполняющей извлечение, иначе вы не сможете пройти аутентификацию.