Mit dem Google Cloud CLI Docker-Image können Sie eine bestimmte Version gcloud CLI als Docker-Image von Artifact Registry nutzen und schnell ausführen Google Cloud CLI-Befehle in einem isolierten, korrekt konfigurierten Container
Das Docker-Image der Google Cloud CLI ist die gcloud CLI, die auf einem Debian- oder Alpine-Image installiert ist. Mit den Docker-Images der Google Cloud CLI können Sie gcloud und die zugehörigen Komponenten verwenden, ohne gcloud manuell auf Ihrem lokalen Computer installieren zu müssen.
Docker-Image-Optionen
Es gibt sechs Google Cloud CLI-Docker-Images. Wir empfehlen Ihnen, das folgende stabile Image:
:stable
,:VERSION-stable
: Standard-, kleinstes (Debian-basiertes) Image mit einem gcloud-Standardinstallation.
Wenn Sie ein Alpine-basiertes Image verwenden möchten, können Sie Folgendes installieren: Bild:
: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 Komponenten vorinstalliert.:debian_component_based
,:VERSION-debian_component_based
: großes (Debian-basiertes) 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 | :latest | :slim | :debian_component_based |
---|---|---|---|---|---|---|
App Engine Go-Erweiterungen | x | x | ||||
Appctl | x | |||||
Artifact Registry-Go-Modulpaket-Hilfsprogramm | ||||||
BigQuery-Befehlszeilentool | x | x | x | x | x | x |
Im Lieferumfang enthaltenes Python 3.9 | 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 | |||
Cloud Run-Proxy | ||||||
Cloud SQL Proxy | ||||||
Spanner Emulator | x | x | ||||
Spanner Migration Tool | ||||||
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 |
Docker Credential Helper von Google Container Registry | ||||||
Kustomize | x | |||||
Logstreaming | ||||||
Minikube | x | |||||
Nomos-Befehlszeile | x | |||||
On-Demand Scanning API-Extraktionshilfe | x | x | ||||
Skaffold | x | |||||
Terraform-Tools | ||||||
anthos-auth | x | |||||
config-connector | ||||||
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 | ||||
kubectl-oidc | ||||||
Packung |
Bestimmte Version in der Produktion verwenden
Die Tags :<tag>
und :<VERSION-tag>
des Google Cloud CLI Docker-Images sind
täglich neu erstellt werden, um alle Basis-Image-Sicherheitslücken 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:
- Aktualisierungen der Google Cloud SDK-Version, die das Verhalten des Tools ändern können.
- Aktualisierungen der Liste der installierten Komponenten.
Um mögliche Unterbrechungen zu vermeiden, wird empfohlen, in Ihrer Produktionsumgebung eine der folgenden Versionen zu 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 in Artifact Registry mit dem folgenden Repository-Namen gehostet: gcr.io/google.com/cloudsdktool/google-cloud-cli
. Die Bilder sind auch über die Repositories us.gcr.io
, eu.gcr.io
und asia.gcr.io
verfügbar.
Wenn Sie das Image der stabilen Google Cloud CLI-Version
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable
verwenden möchten, rufen Sie es mit dem folgenden Befehl aus der Artifact Registry ab:docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable
Ü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 beim Docker-Image der Google Cloud CLI, indem Sie einen der folgenden Befehle:
Authentifizieren Sie gcloud mit Ihren Nutzeranmeldedaten, indem Sie
gcloud auth login
wird ausgeführt: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, geben Sie die Option
--update-adc
an: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.Führen Sie den Container mit
--volumes-from
aus, um die Compute-Instanz mit den Anmeldedaten aufzulisten: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, legen Sie mit der Property
auth/credential_file_override
einen Pfad zu einem bereitgestellten Dienstkonto fest. Aktualisieren Sie dann die Konfiguration, damit das bereitgestellte Dienstkonto mithilfe der UmgebungsvariablenCLOUDSDK_CONFIG
gelesen wird.Im folgenden Beispiel ist die
auth/credential_file_override
bereits in dermycloud
-Konfiguration 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 hier:
Zusätzliche Komponenten installieren
Sie können zusätzliche Komponenten im Docker-Image der Google Cloud CLI installieren. Die der Installation zusätzlicher Komponenten je nach zugrunde liegendem Basis-Image-Typ.
Debian-basierte Images
Standardmäßig haben die stabilen Images (:stable
und :VERSION-stable
) keine
andere Komponenten als bq
und gsutil
installiert haben. Führen Sie einen der folgenden Schritte aus, um zusätzliche Komponenten für das stabile Image zu installieren:
- Eigenes Image mit dem Dockerfile des
:stable
-Images erstellen: Sie können Pakete installieren, die nicht direkt überapt-get
(d. h. die Docker-Engine) verfügbar sind. - Zusätzliche Pakete oder Komponenten zur Laufzeit installieren: Sie können das Image anpassen, ohne es zu hosten.
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 stable
-Docker-Image abgerufen haben, können Sie während der Laufzeit die folgenden zusätzlichen Komponenten installieren:
- 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
So installieren Sie die apt-packages curl
und gcc
, während Sie das Docker-Image ausführen:
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
Um zusätzliche Komponenten für Alpine-basierte Images zu installieren, erstellen Sie ein Dockerfile, das das cloud-sdk
-Image als Basis-Image verwendet.
So fügen Sie beispielsweise die Komponenten kubectl
und app-engine-java
hinzu:
- 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
- Erstellen Sie das Image mit dem folgenden Befehl:
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 in der Artifact Registry gehosteten Images bieten eine voll funktionsfähige Installation der Google Cloud CLI. Wenn Sie Fehler oder Probleme im Zusammenhang mit den Docker-Images finden, können Sie ein Supportticket erstellen.
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
Vorgehensweise bei der Fehlermeldung failed to fetch <image-tag>
wenn Sie das Docker-Image abrufen?
Wenn Sie beim Pullen eines Docker-Images der Google Cloud CLI den Fehler failed to fetch <image-tag>
erhalten, versuchen Sie höchstwahrscheinlich, ein Image-Tag abzurufen, 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 es nicht möglich ist, den Parameter
:stable
-Docker-Image, das zu Ihrem Workflow passt, und listet die zu korrigierenden Optionen auf:
Anwendungsfälle | Optionen zur Behebung |
---|---|
app-engine -Komponenten (verwendet im :latest - oder :debian_component_based -Docker-Image) 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 Docker-Image :stable . |
Was sollten Sie tun, wenn der 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 Sicherheitslücken in den Docker-Images der Google Cloud CLI gefunden hat, die nicht behoben wurden, können Sie einen Fehler melden. Geben Sie dabei die folgenden Informationen an:
- 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.