Cloud SDK-Docker-Image installieren

Das Cloud SDK-Docker-Image ist im Wesentlichen ein Cloud SDK, das auf einem Debian-basierten Betriebssystem-Image wurde.

Dadurch können Sie die gewünschte Version von Cloud SDK als Docker-Image von Dockerhub abrufen und gcloud-Befehle innerhalb eines isolierten, korrekt konfigurierten Containers ausführen.

Das Docker-Image selbst wird in Container Registry und Docker Hub mit den folgenden Repository-Namen gehostet:

  • Container Registry: gcr.io/google.com/cloudsdktool/cloud-sdk
  • Docker Hub: google/cloud-sdk

Docker-Image-Optionen

Cloud SDK-Docker-Images gibt es in den Varianten "latest", "slim" und "alpine". Sie können die gewünschte Variante mit dem entsprechenden Tag angeben (nach dem Host-Repository-Namen):

  • :latest, :VERSION: großes (Debian-basiertes) Image mit vorinstallierten zusätzlichen Komponenten
  • :slim, :VERSION-slim: kleineres (Debian-basiertes) Image ohne vorinstallierte Komponenten
  • :alpine, :VERSION-alpine: kleinstes (Alpine-basiertes) Image ohne installierte zusätzliche Komponenten

Ein bestimmtes Docker-Image installieren

.
  1. Um das Image des neuesten Cloud SDK-Release gcr.io/google.com/cloudsdktool/cloud-sdk:latest zu verwenden, rufen Sie es mit dem folgenden Befehl aus Container Registry ab:

    docker pull gcr.io/google.com/cloudsdktool/cloud-sdk:latest
    
  2. Führen Sie den folgenden Befehl aus, um die Installation zu prüfen, wenn Sie die neueste Version heruntergeladen haben:

    docker run gcr.io/google.com/cloudsdktool/cloud-sdk:latest gcloud version
    

    Alternativ können Sie diesen Befehl für eine bestimmte Version (266.0.0) ausführen:

    docker run gcr.io/google.com/cloudsdktool/cloud-sdk:266.0.0 gcloud version
    
  3. Führen Sie folgenden Befehl aus, um sich beim gcloud-Befehlszeilentool zu authentifizieren:

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/cloud-sdk gcloud auth login
    

    Nach der erfolgreichen Authentifizierung werden die Anmeldedaten im Volume von gcloud-config container aufbewahrt.

  4. Führen Sie den Container mit --volumes-from aus, um Compute-Instanzen aufzulisten, die diese Anmeldedaten zur Prüfung verwenden:

    docker run --rm --volumes-from gcloud-config gcr.io/google.com/cloudsdktool/cloud-sdk gcloud compute instances list --project your_project
    

Zusätzliche Komponenten installieren

Standardmäßig haben die neuesten Images (gcr.io/google.com/cloudsdktool/cloud-sdk:latest und gcr.io/google.com/cloudsdktool/cloud-sdk:VERSION) alle gcloud-Komponenten installiert.

Für die Images gcr.io/google.com/cloudsdktool/cloud-sdk:slim und gcr.io/google.com/cloudsdktool/cloud-sdk:alpine sind jedoch keine zusätzlichen Komponenten vorinstalliert. Sie können diese Images folgendermaßen erweitern:

Debian-basierte Images

Führen Sie folgenden Befehl aus, um eine zusätzliche Komponente wie google-cloud-sdk-datastore-emulator zu installieren:

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 .

Alpine-basierte Images

Um zusätzliche Komponenten für Alpine-basierte Images zu installieren, erstellen Sie ein Dockerfile, das das Cloud SDK-Image als Basis-Image verwendet. Um beispielsweise kubectl- und app-engine-java-Komponenten hinzuzufügen, erstellen Sie ein Dockerfile, das so aussieht:

FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
RUN apk --update add openjdk7-jre
RUN gcloud components install app-engine-java kubectl

Führen Sie anschließend den folgenden Befehl aus:

docker build -t my-cloud-sdk-docker:alpine .

Bestimmte Cloud SDK-Versionen installieren

Um bestimmte Cloud SDK-Versionen zu installieren, geben Sie Ihre bevorzugte Version an, wenn Sie den Befehl docker build ausführen. Beispiel:

docker build -t my-cloud-sdk-docker:alpine --build-arg CLOUD_SDK_VERSION=<release_number> .