Subir imagen docker local al Container Registry de GCP
En mis primeras semanas de andanzas con la plataforma de Google Cloud, me metieron de lleno a los leones. «Ves buscando información sobre docker y Kubernetes, a ver como podemos montar ahí cosas».
Uno de los fundamentales para poder empezar a trabajar de manera cómoda con el entorno GKE es utilizar el Container Registry. Y aunque la documentación de Google es copiosa y viene con muchos ejemplos, etc. me llevó sus días aprender a funcionar de manera ágil.
¿Qué es el Container Registry?
Empecemos por el principio. El Conainer Registry es la heramienta que necesitas utilizar si quieres gestionar imágenes Docker y poder empezar a trabajar con Kubernetes.
Entre las muchas funcionalidades que brinda, está la capacidad de realizar análisis de vulnerabilidades, además de la gestión de los accesos, integración con herramientas tipo Jenkins de CI/CD…
Todo esto esta muy bien Laura, pero… ¡Yo lo que quiero es poder subir una imágen para ir desplegar mi primer pod!
Requisitos previos
Lo más cómodo en GCP es tener descargada su herramienta de consola SDK. No solo para la siguiente implementación, sino para implementaciones sucesivas. Para ello necesitarás:
Si ya has instalado el SDK de Cloud, recuerda actualizarlo para tener siempre la última versión. Para ello, puedes lanzar desde la consola SDK el siguiente comando:
gcloud components update
- Habilitar la API Cloud BuildAPI
- Tener creado un proyecto en la plataforma. Si aún no lo tienes, aquí te dejo un enlace a la documentación oficial.
- Tener instalado docker en local.
Autentícate en SDK
Antes de poder subir nada poder subir nada, necesitamos autenticarnos.
gcloud auth login
Lo siguiente que tenemos que hacer es seleccionar el proyecto con el que empezar a trabajar.
gcloud config set project [PROJECT_ID]
Donde [PROJECT_ID] es tu ID del proyecto de GCP.
Procedimiento
1. Abrir la herramienta de comandos favorita (en mi caso, PowerShell)
2. Re-etiquetar la imágen con el formato adecuado. La sintaxis es la siguiente, dependiendo si le añadís o no la etiqueta:
docker tag [IMAGEN_LOCAL] [REPOSITORIO]/[ID-PROYECTO]/[IMAGEN]
docker tag [IMAGEN_LOCAL] [REPOSITORIO]/[ID-PROYECTO]/[IMAGEN]:[ETIQUETA]
Los repositorios disponibles para Container Registry son:
- gcr.io
- us.gcr.io
- eu.gcr.io
- asia.gcr.io.
Ejemplo
docker tag mongo gcr.io/mi-proyecto/mongo
3. Enviar la imagen (push) al Container Registry.
docker push [HOSTNAME]/[PROJECT-ID]/[IMAGE]
docker push [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
Ejemplo
docker push gcr.io/mi-proyecto/mongo
4. Comprobar que la subida. Si todo ha ido bien, veremos una nueva entrada en la consola web.
Problema resuelto!