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
.
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
Ü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 UmgebungsvariablenCLOUDSDK_CONFIG
gelesen wird.Im folgenden Beispiel hat die
mycloud
-Konfiguration den Wertauth/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 Dockerfile des
:stable
-Images erstellen: Pakete installieren, die nicht direkt überapt-get
(d. h. die Docker-Engine) verfügbar sind. - Zusätzliche Pakete oder Komponenten zur Laufzeit installieren: Bild 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 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:
- 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, 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.