Docker-Image der Google Cloud CLI installieren

Mit dem Google Cloud CLI-Docker-Image können Sie eine bestimmte Version der Google Cloud CLI als Docker-Image aus der Artifact Registry abrufen und Google Cloud CLI-Befehle schnell in einem isolierten, korrekt konfigurierten Container ausführen.

Das Docker-Image der Google Cloud CLI ist die gcloud CLI, die auf eines Debian- oder Alpine-Images. Die Google Cloud CLI-Docker-Images ermöglichen die Verwendung von gcloud sowie die zugehörigen Komponenten an, ohne gcloud auf Ihrem lokalen Computer installieren.

Docker-Image-Optionen

Es gibt sechs Docker-Images für die Google Cloud CLI. Wir empfehlen, das folgende stabile Image zu installieren:

  • :stable, :VERSION-stable: Standard, kleinstes (Debian-basiertes) Image mit einer standardmäßigen gcloud-Installation

Wenn Sie ein Alpine-basiertes Image verwenden möchten, können Sie das folgende Image installieren:

  • :alpine, :VERSION-alpine: Kleineres (Alpine-basiertes) Image ohne installierte zusätzliche Komponenten. Dieses Image unterstützt linux/arm.

Wenn Sie Images mit zusätzlichen Paketen oder gcloud benötigen Komponenten vorinstalliert, können Sie eine der folgenden Optionen installieren:

  • :emulators, :VERSION-emulators: Kleineres (Debian-basiertes) Image mit vorinstallierten Emulatorkomponenten.
  • :latest, :VERSION: großes (Debian-basiertes) Image mit vorinstallierten zusätzlichen Komponenten
  • :slim, :VERSION-slim: Kleineres (Debian-basiertes) Image ohne vorinstallierte Komponenten.
  • :debian_component_based, :VERSION-debian_component_based: groß (Debian-basiert) Image mit vorinstallierten zusätzlichen Komponenten. Im Gegensatz zu :latest, bei dem deb-Pakete verwendet wurden, werden bei diesem Image Komponenten über den Komponentenmanager installiert. Dieses Image unterstützt linux/arm.

In jedem Tag installierte Komponenten

Komponente :stable :alpine :emulators :neueste :schlank :debian_component_based
App Engine-Go-Erweiterungen x x
Appctl x
BigQuery-Befehlszeilentool x x x x x x
Python 3.9 gebündelt x x x x x x
Bigtable-Befehlszeilentool x x
Bigtable Emulator x x x
Cloud Datastore-Emulator x x x
Cloud Firestore-Emulator x x
Cloud Pub/Sub-Emulator x x x
Spanner Emulator x x
Cloud Storage-Befehlszeilentool x x x x x x
Google Cloud CLI-Kernbibliotheken x x x x x x
Google Cloud CRC32C-Hash-Tool x x x x x x
Kustomize x
Minikube x
Nomos-Befehlszeile x
On-Demand Scanning API-Extraktionshilfe x x
Skaffold x
anthos-auth x
gcloud-Alphabefehle x x x x
gcloud-Betabefehle x x x x
gcloud app Java-Erweiterungen x
gcloud app Python-Erweiterungen x
gcloud app Python-Erweiterungen (zusätzliche Bibliotheken) x x
gke-gcloud-auth-plugin x x
KPT x x
kubectl x x

Bestimmte Version in der Produktion verwenden

Die Docker-Images der Google Cloud CLI mit den Tags :<tag> und :<VERSION-tag> werden täglich neu erstellt, um Sicherheitslücken im Basis-Image sofort zu beheben. Wenn Sie ein Tag verwenden, das nicht an eine bestimmte Version gebunden ist, kann es in Ihrer Umgebung zu den folgenden möglicherweise bahnbrechenden Änderungen kommen:

  • Google Cloud SDK-Versionsupdates, die sich auf das Verhalten des Tools auswirken können.
  • Aktualisierungen der Liste der installierten Komponenten.

Um funktionsgefährdende Änderungen zu vermeiden, sollten Sie für die Umgebung eine der folgenden Möglichkeiten verwenden:

  • Ein mit Datum versehenes Tag mit Versionsangabe, z. B. :496.0.0-stable-20241015
  • Einen bestimmten Bild-Hash, z. B.: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:9c0efc06918d5405b13bfe4bb5ce1d98ea4695cc703446e9e0aa0ee8800622df

Sie sollten auch die Bilder regelmäßig aktualisieren, um gcloud-Version.

Informationen zur aktuellen Version der Google Cloud CLI und zu allen vorherigen Versionen der Google Cloud CLI

Docker-Image installieren

Das Docker-Image wird gehostet auf Artifact Registry durch den folgenden Repository-Namen: gcr.io/google.com/cloudsdktool/google-cloud-cli Die Bilder sind auch mit den Repositories us.gcr.io, eu.gcr.io und asia.gcr.io.

  1. So verwenden Sie das Image der stabilen Version der Google Cloud CLI: gcr.io/google.com/cloudsdktool/google-cloud-cli:stable, Rufen Sie es aus Artifact Registry ab indem Sie den folgenden Befehl ausführen:

    docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable
    
  2. Überprüfen Sie die Installation mit folgendem Befehl:

    docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable gcloud version
    

    Wenn Sie das Floating-Tag :stable verwendet haben (das immer auf das neueste veröffentlichen, überprüfen Sie die Installation mit dem folgenden Befehl:

    docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
    

Authentifizierung mit dem Docker-Image der Google Cloud CLI

Authentifizieren Sie sich mit dem Docker-Image der Google Cloud CLI. Führen Sie dazu einen der folgenden Befehle aus:

  • Authentifizieren Sie gcloud mit Ihren Nutzeranmeldedaten. Führen Sie dazu gcloud auth login aus:

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login
    
  • Wenn Sie Anwendungen authentifizieren müssen, die die Google Cloud APIs verwenden, übergeben Sie die Option --update-adc:

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login --update-adc
    
  • So legen Sie ein Standardprojekt fest, das bei jedem Öffnen des Containers ausgewählt wird: führen Sie den folgenden Befehl aus:

    docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable /bin/bash -c 'gcloud auth login && gcloud config set project your-project'
    

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

    Lassen Sie sich zur Überprüfung die Compute-Instanz mit den Anmeldedaten auflisten. Führen Sie dazu den Befehl Container mit --volumes-from:

    docker run --rm --volumes-from gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud compute instances list --project your-project
    
  • Wenn Sie sich mit einem Dienstkonto authentifizieren möchten, verwenden Sie die Methode auth/credential_file_override, um einen Pfad zu einem das bereitgestellte Dienstkonto. Aktualisieren Sie dann die Konfiguration, damit das bereitgestellte Dienstkonto mithilfe der Umgebungsvariablen CLOUDSDK_CONFIG gelesen wird.

    Im folgenden Beispiel hat die mycloud-Konfiguration den Wert auth/credential_file_override bereits festgelegt. Die Konfiguration verweist auf eine Zertifikatsdatei, die im Container als separate Volume-Bereitstellung

    $ docker run -ti -e CLOUDSDK_CONFIG=/config/mygcloud \
                  -v `pwd`/mygcloud:/config/mygcloud \
                  -v `pwd`:/certs  gcr.io/google.com/cloudsdktool/google-cloud-cli:stable /bin/bash
    
    bash-4.4# gcloud config list
    [auth]
    credential_file_override = /certs/svc_account.json
    
    bash-4.4# head -10  /certs/svc_account.json
    {
       "type": "service_account",
       "project_id": "project_id1",
    ....
    
    bash-4.4# gcloud projects list
    PROJECT_ID           NAME         PROJECT_NUMBER
    project_id1          GCPAppID     1071284184432
    

    Weitere Informationen zum Festlegen von Umgebungsvariablen finden Sie unter den folgenden Links:

Zusätzliche Komponenten installieren

Sie können zusätzliche Komponenten im Docker-Image der Google Cloud CLI installieren. Die Installation zusätzlicher Komponenten hängt vom zugrunde liegenden Basis-Image-Typ ab.

Debian-basierte Images

Standardmäßig haben die stabilen Images (:stable und :VERSION-stable) keine andere Komponenten als bq und gsutil installiert haben. Um zusätzliche für das stabile Image haben, führen Sie einen der folgenden Schritte aus:

Eigenes Image mit dem Image-Dockerfile :stable erstellen

Wenn Sie ein eigenes Image mit zusätzlichen Komponenten aus :stable erstellen möchten, können Sie Folgendes klonen: cloud-sdk-docker GitHub-Verzeichnis erstellen und den Befehl docker build verwenden, um das Docker-Image :stable aus dem Dockerfile mit dem INSTALL_COMPONENTS . So fügen Sie beispielsweise datastore-emulator-Komponenten hinzu:

# clone the GitHub docker directory 
$ git clone https://github.com/GoogleCloudPlatform/cloud-sdk-docker.git
$ docker build --build-arg CLOUD_SDK_VERSION=<release_version> \
   --build-arg INSTALL_COMPONENTS="google-cloud-cli-datastore-emulator=<release_version>-0" \
   -t my-cloud-sdk-docker:stable .

Zusätzliche Pakete oder Komponenten zur Laufzeit installieren

Wenn Sie das Docker-Image stable abgerufen haben, können Sie Folgendes installieren: zusätzliche Komponenten während der Laufzeit:

  • gcloud-Komponenten mithilfe der Umgebungsvariablen COMPONENTS.
  • apt-Pakete mithilfe der Umgebungsvariablen APT_PACKAGES.

Wenn Sie beispielsweise die Komponenten cbt und kpt zur Laufzeit installieren möchten, können Sie den folgenden Befehl ausführen:

docker run -e COMPONENTS='google-cloud-cli-cbt google-cloud-cli-kpt' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version

Wenn Sie die Apt-Pakete curl und gcc installieren möchten, während das Docker-Image ausgeführt wird, führen Sie den folgenden Befehl aus:

docker run -e APT_PACKAGES='curl gcc' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version

Alpine-basierte Images

Erstellen Sie ein Dockerfile, um zusätzliche Komponenten für Alpine-basierte Images zu installieren die das cloud-sdk-Image als Basis-Image verwendet.

So fügen Sie beispielsweise kubectl- und app-engine-java-Komponenten hinzu:

  1. Erstellen Sie das Dockerfile so:
FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:alpine
RUN apk --update add gcompat openjdk8-jre
RUN gcloud components install app-engine-java kubectl
  1. Erstellen Sie das Image, indem Sie den folgenden Befehl ausführen:
docker build -t my-cloud-sdk-docker:alpine .

Bei Alpine-basierten Images müssen Sie die Abhängigkeiten zusätzlicher Komponenten manuell installieren.

Migration zum :stable-Image

Wenn Sie die Docker-Images :latest, :slim, :emulators, :alpine und :debian_component_based verwenden, empfehlen wir Ihnen, zum Debian-basierten :stable-Image zu migrieren. Dieses hat eine kleinere Größe und bietet verbesserte Sicherheitsfixes. Schritte zur Migration zum :stable-Image finden Sie unter Zum Image :stable migrieren

Support für Bilder

Die auf der Artifact Registry bieten voll funktionsfähige Installationen der Google Cloud CLI. Wenn Sie Fehler finden oder Probleme im Zusammenhang mit den Docker-Images, die Sie erstellen können, Support-Ticket.

Wenn Sie ein Image mit zusätzlichen Komponenten, Paketen oder Tools benötigen, können Sie eine eigene Image-Ebene über dem Docker-Image der Google Cloud CLI erstellen.

Fehlerbehebung

Was sollten Sie tun, wenn beim Abrufen des Docker-Images ein failed to fetch <image-tag>-Fehler angezeigt wird?

Wenn Sie beim Abrufen einer E-Mail-Adresse den Fehler failed to fetch <image-tag> erhalten, Google Cloud CLI-Docker-Image, versuchen Sie höchstwahrscheinlich, ein Image abzurufen. Tag, das eingestellt und entfernt wurde. Überprüfen Sie die Docker Image-Optionen für verfügbare Docker-Image-Optionen und zu einem der unterstützten Tags migrieren.

In welchen Anwendungsfällen kann der Docker-Container :stable nicht direkt erweitert werden? Bild, das Ihren aktuellen Workflow unterstützt?

In der folgenden Tabelle sind die Anwendungsfälle aufgeführt, in denen Sie das :stable-Docker-Image nicht direkt an Ihren Workflow anpassen können. Außerdem werden die Optionen zur Behebung des Problems aufgeführt:

Anwendungsfälle Abhilfeoptionen
app-engine-Komponenten (die im Docker-Image :latest oder :debian_component_based verwendet werden) sind nicht mit Debian 12 kompatibel. Erstellen Sie ein eigenes Image aus einem kompatiblen Debian-Image (Debian 11), um app-engine-Komponenten zu installieren.
Drittanbieterpakete wie Docker oder Docker-buildx sind nicht im :stable-Image enthalten Wenn Sie diese Drittanbieterpakete benötigen, erstellen Sie ein eigenes Image oder installieren Sie diese Pakete manuell im :stable-Docker-Image.

Was sollten Sie tun, wenn Ihr Scanner Sicherheitslücken in den Docker-Images gefunden hat?

Docker-Images der Google Cloud CLI werden in Artifact Registry gehostet. Die Images werden täglich gescannt und Gängige Sicherheitslücken und Schwachstellen (Common Vulnerabilities and Exposures, CVEs) werden vor jeder neuen gcloud-Version gemindert werden. Wenn Ihr Scanner jedoch wurden Sicherheitslücken in der Google Cloud CLI-Docker-Images, die nicht aufgelöst werden, können Sie Programmfehler melden, enthält die folgenden Informationen:

  • Die Art der Sicherheitslücke.
  • Die genaue Position im Bild.

Sicherheitslücken in Basisbetriebssystem-Images werden nur behoben, um sicherzustellen, dass in den Docker-Images der Google Cloud CLI aktuelle, stabile Releases von Debian oder Alpine Linux verwendet werden.