La imagen de Docker del SDK de Cloud es, básicamente, el SDK de Cloud instalado sobre una imagen de SO basada en Debian.
Esto te permite extraer la versión deseada del SDK de Cloud como una imagen de Docker desde Google Container Registry y ejecutar rápidamente comandos gcloud
dentro de un contenedor aislado y correctamente configurado.
La imagen de Docker está alojada en Container Registry, con el siguiente nombre de repositorio: gcr.io/google.com/cloudsdktool/cloud-sdk
.
Opciones de imagen de Docker
Las imágenes de Docker del SDK de Cloud tienen tres variantes: más reciente, Slim y Alpine. Puedes especificar tu preferencia con la etiqueta correspondiente (después del nombre del repositorio del host):
:latest
,:VERSION
: Imagen grande (basada en Debian) con componentes adicionales preinstalados:slim
,:VERSION-slim
: Imagen más pequeña (basada en Debian) sin componentes preinstalados:alpine
,:VERSION-alpine
: La imagen más pequeña (basada en Alpine) sin componentes adicionales instalados
Instala una imagen de Docker especificada
Para usar la imagen de la versión más reciente del SDK de Cloud,
gcr.io/google.com/cloudsdktool/cloud-sdk:latest
, extráela de Container Registry con el siguiente comando:docker pull gcr.io/google.com/cloudsdktool/cloud-sdk:latest
Verifica la instalación (si extrajiste la versión más reciente) con el siguiente comando:
docker run gcr.io/google.com/cloudsdktool/cloud-sdk:latest gcloud version
Como alternativa, ejecuta este comando para una versión específica, 266.0.0:
docker run gcr.io/google.com/cloudsdktool/cloud-sdk:266.0.0 gcloud version
Autentica con la herramienta de línea de comandos de gcloud con el siguiente comando:
docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/cloud-sdk gcloud auth login
Una vez que se haya autenticado correctamente, las credenciales se conservan en el volumen de
gcloud-config container
.Enumera las instancias de procesamiento que usan estas credenciales para verificar mediante la ejecución del contenedor con
--volumes-from
:docker run --rm --volumes-from gcloud-config gcr.io/google.com/cloudsdktool/cloud-sdk gcloud compute instances list --project your_project
Instala componentes adicionales
De forma predeterminada, las imágenes más recientes (gcr.io/google.com/cloudsdktool/cloud-sdk:latest
y gcr.io/google.com/cloudsdktool/cloud-sdk:VERSION
) tienen todos los componentes de gcloud
instalados.
Las imágenes gcr.io/google.com/cloudsdktool/cloud-sdk:slim
y gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
, sin embargo, no incluyen componentes adicionales preinstalados. Para extender estas imágenes, sigue estas instrucciones:
Imágenes basadas en Debian
Para instalar un componente adicional, como google-cloud-sdk-datastore-emulator
, ejecuta lo siguiente:
cd debian_slim/
docker build --build-arg CLOUD_SDK_VERSION=159.0.0 \
--build-arg INSTALL_COMPONENTS="google-cloud-sdk-datastore-emulator" \
-t my-cloud-sdk-docker:slim .
Imágenes basadas en Alpine
A fin de instalar componentes adicionales para imágenes basadas en Alpine, crea un Dockerfile que use la imagen del SDK de Cloud como imagen base. Por ejemplo, para agregar componentes kubectl
y app-engine-java
, crea un Dockerfile que se vea de la siguiente manera:
FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
RUN apk --update add openjdk7-jre
RUN gcloud components install app-engine-java kubectl
Cuando termines, ejecuta el siguiente comando:
docker build -t my-cloud-sdk-docker:alpine .
Instala versiones específicas del SDK de Cloud
Para instalar versiones específicas del SDK de Cloud, ingresa tu versión preferida cuando ejecutes el comando docker build
de la siguiente manera:
docker build -t my-cloud-sdk-docker:alpine --build-arg CLOUD_SDK_VERSION=<release_number> .