L'immagine Docker di Google Cloud CLI ti consente di eseguire il pull di una versione specifica gcloud CLI come immagine Docker Artifact Registry ed eseguire rapidamente Comandi Google Cloud CLI in un container isolato e configurato correttamente.
L'immagine Docker di Google Cloud CLI è gcloud CLI installata in cima a un'immagine Debian o alpina. Le immagini Docker dell'interfaccia a riga di comando Google Cloud consentono di utilizzare gcloud e i relativi componenti in bundle senza dover installare manualmente gcloud sulla tua macchina locale.
Opzioni immagine Docker
Esistono sei immagini Docker di Google Cloud CLI. Ti consigliamo di installare la seguente immagine stabile:
:stable
,:VERSION-stable
: immagine predefinita, più piccola (basata su Debian) con un con gcloud standard.
Se vuoi utilizzare un'immagine basata su Alpine, puoi installare la seguente immagine:
:alpine
,:VERSION-alpine
: immagine più piccola (basata sulle Alpi) senza ulteriori componenti aggiuntivi installati. Questa immagine supporta Linux/arm.
Se vuoi immagini con pacchetti aggiuntivi o gcloud componenti preinstallati, puoi installare una delle seguenti opzioni:
:emulators
,:VERSION-emulators
: immagine più piccola (basata su Debian) con emulatore sono preinstallati.:latest
,:VERSION
: immagine grande (basata su Debian) con componenti aggiuntivi sono preinstallate.:slim
,:VERSION-slim
: immagine più piccola (basata su Debian) senza componenti preinstallati.:debian_component_based
,:VERSION-debian_component_based
: grande (basato su Debian) immagine con componenti aggiuntivi preinstallati. A differenza di:latest
che utilizzava i pacchetti deb, questa immagine utilizza il gestore dei componenti per installare i componenti. Questa immagine supporta linux/arm.
Componenti installati in ogni tag
Componente | :stable | :alpine | :emulators | :più recente | :sottile | :debian_component_based |
---|---|---|---|---|---|---|
Estensioni Go di App Engine | x | x | ||||
Appctl | x | |||||
Strumento a riga di comando BigQuery | x | x | x | x | x | x |
Python 3.9 in bundle | x | x | x | x | x | x |
Strumento a riga di comando Bigtable | x | x | ||||
Emulatore Bigtable | x | x | x | |||
Emulatore di Cloud Datastore | x | x | x | |||
Emulatore Cloud Firestore | x | x | ||||
Emulatore Cloud Pub/Sub | x | x | x | |||
Emulatore di Spanner | x | x | ||||
Strumento a riga di comando di Cloud Storage | x | x | x | x | x | x |
Librerie di base di Google Cloud CLI | x | x | x | x | x | x |
Strumento di hash Google Cloud CRC32C | x | x | x | x | x | x |
Kustomize | x | |||||
Minikube | x | |||||
Nomos CLI | x | |||||
Assistente per l'estrazione dell'API On-Demand Scanning | x | x | ||||
Skaffold | x | |||||
anthos-auth | x | |||||
Comandi gcloud Alpha | x | x | x | x | ||
Comandi gcloud beta | x | x | x | x | ||
Estensioni Java gcloud app | x | |||||
Estensioni Python di gcloud app | x | |||||
gcloud app Python Extensions (Extra Libraries) | x | x | ||||
gke-gcloud-auth-plugin | x | x | ||||
kpt | x | x | ||||
kubectl | x | x |
Utilizzare una versione specifica in produzione
L'immagine Docker :<tag>
e i tag :<VERSION-tag>
di Google Cloud CLI sono
vengono ricostruite giornalmente per incorporare immediatamente eventuali correzioni di vulnerabilità delle immagini di base.
Se utilizzi un tag non legato a una versione specifica, l'ambiente potrebbe
che potrebbero subire le seguenti possibili modifiche:
- Aggiornamenti delle versioni di Google Cloud SDK, che potrebbero modificare il comportamento dello strumento.
- Aggiornamenti all'elenco dei componenti installati.
Per evitare possibili modifiche che provocano un errore, è consigliabile che il team di produzione utilizza uno dei seguenti elementi:
- Un tag con controllo delle versioni con data, ad esempio
:496.0.0-stable-20241015
- Un hash immagine specifico come:
gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:9c0efc06918d5405b13bfe4bb5ce1d98ea4695cc703446e9e0aa0ee8800622df
Dovresti anche aggiornare periodicamente le immagini per ottenere la versione più recente alla versione di gcloud.
Controlla la versione più recente di Google Cloud CLI e tutte le versioni precedenti di Google Cloud CLI.
Installazione di un'immagine Docker
L'immagine Docker è ospitata
Artifact Registry
con il seguente nome di repository:
gcr.io/google.com/cloudsdktool/google-cloud-cli
. Le immagini sono disponibili anche
utilizzando i repository us.gcr.io
, eu.gcr.io
e asia.gcr.io
.
Per utilizzare l'immagine della release stabile di Google Cloud CLI,
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable
, esegui il pull da Artifact Registry eseguendo questo comando:docker pull gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable
Verifica l'installazione eseguendo:
docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:489.0.0-stable gcloud version
Se hai utilizzato il tag
:stable
mobile (che rimanda sempre alla release più recente), verifica l'installazione eseguendo il seguente comando:docker run --rm gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Autenticazione con l'immagine Docker di Google Cloud CLI
Esegui l'autenticazione con l'immagine Docker di Google Cloud CLI eseguendo una delle seguenti comandi:
Autentica gcloud con le tue credenziali utente con
gcloud auth login
in esecuzione:docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login
Se hai bisogno di autenticare applicazioni che utilizzano le API Google Cloud, Passa l'opzione
--update-adc
:docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth login --update-adc
Per impostare un progetto predefinito che venga selezionato ogni volta che apri il contenitore, esegui il seguente comando:
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'
Dopo l'autenticazione, le credenziali vengono conservate nel volume di
gcloud-config container
.Per verificare, elenca l'istanza Compute utilizzando le credenziali eseguendo contenitore con
--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
Se vuoi eseguire l'autenticazione utilizzando un account di servizio, utilizza la
auth/credential_file_override
per impostare un percorso a una o un account di servizio montato. Quindi aggiorna la configurazione per leggere il servizio montato utilizzando la variabile di ambienteCLOUDSDK_CONFIG
.Nell'esempio seguente, la configurazione
mycloud
haauth/credential_file_override
già impostato. La configurazione fa riferimento a un file del certificato presente all'interno del contenitore come mount del volume separato.$ 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
Per saperne di più sull'impostazione delle variabili di ambiente, consulta quanto segue:
Installazione di componenti aggiuntivi
Puoi installare componenti aggiuntivi nell'immagine Docker di Google Cloud CLI. L'approccio per installare componenti aggiuntivi varia a seconda del tipo di immagine di base sottostante.
Immagini basate su Debian
Per impostazione predefinita, le immagini stabili (:stable
e :VERSION-stable
) non hanno componenti installati diversi da bq
e gsutil
. Per installare ulteriori
per l'immagine stabile, procedi in uno dei seguenti modi:
- Crea la tua immagine utilizzando il Dockerfile dell'immagine
:stable
: Installa i pacchetti non disponibili direttamente tramiteapt-get
, ovvero il motore Docker. - Installazione di pacchetti o componenti aggiuntivi in fase di runtime: Personalizza l'immagine senza ospitarla.
Creare la tua immagine utilizzando il Dockerfile dell'immagine :stable
Per creare la tua immagine con componente aggiuntivo di :stable
, puoi clonare
cloud-sdk-docker
alla directory GitHub e usa il comando docker build
per creare
l'immagine Docker :stable
dal Dockerfile con INSTALL_COMPONENTS
. Ad esempio, per aggiungere i componenti datastore-emulator
:
# 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 .
Installazione di pacchetti o componenti aggiuntivi in fase di runtime
Se hai eseguito il pull dell'immagine Docker stable
, puoi installare i seguenti componenti aggiuntivi durante il runtime:
- gcloud utilizzando la variabile di ambiente
COMPONENTS
. - apt-packages utilizzando la variabile di ambiente
APT_PACKAGES
.
Ad esempio, se vuoi installare i componenti cbt
e kpt
in fase di runtime,
puoi eseguire questo comando:
docker run -e COMPONENTS='google-cloud-cli-cbt google-cloud-cli-kpt' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Per installare i pacchetti apt curl
e gcc
durante l'esecuzione dell'immagine Docker,
esegui il seguente comando:
docker run -e APT_PACKAGES='curl gcc' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
Immagini basate sulle Alpi
Per installare componenti aggiuntivi per le immagini basate su Alpine, crea un Dockerfile
che utilizzi l'immagine cloud-sdk
come immagine di base.
Ad esempio, per aggiungere i componenti kubectl
e app-engine-java
:
- Crea il Dockerfile come segue:
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
- Crea l'immagine eseguendo questo comando:
docker build -t my-cloud-sdk-docker:alpine .
Per le immagini basate su alpino, devi installare le dipendenze di manualmente i componenti.
Migrazione all'immagine :stable
in corso...
Se utilizzi :latest
, :slim
, :emulators
, :alpine
e
:debian_component_based
immagini Docker, ti consigliamo di eseguire la migrazione
l'immagine :stable
basata su Debian per immagini di dimensioni inferiori e maggiore sicurezza
correzioni. Per la procedura di migrazione all'immagine :stable
, consulta
Eseguire la migrazione all'immagine :stable
.
Ricevere assistenza per le immagini
Le immagini ospitate Artifact Registry fornire installazioni completamente funzionali di Google Cloud CLI. Se trovi bug o e problemi relativi alle immagini Docker, puoi creare ticket di assistenza.
Quando hai bisogno di un'immagine con componenti, pacchetti o strumenti aggiuntivi, puoi creare il tuo livello immagine sull'immagine Docker di Google Cloud CLI.
Risoluzione dei problemi
Cosa devi fare se viene visualizzato un errore failed to fetch <image-tag>
durante il recupero dell'immagine Docker?
Se viene visualizzato un errore failed to fetch <image-tag>
mentre cerchi di eseguire il pull di
Immagine Docker di Google Cloud CLI, molto probabilmente stai tentando di recuperare un'immagine
che è stato ritirato e rimosso. Controlla il
Opzioni immagine Docker per le opzioni delle immagini Docker disponibili
ed eseguire la migrazione a uno dei tag supportati.
Quali sono i casi d'uso in cui non puoi estendere direttamente l'immagine Docker :stable
per supportare il tuo flusso di lavoro attuale?
La tabella seguente elenca i casi d'uso in cui non puoi estendere direttamente l'immagine Docker :stable
in base al tuo flusso di lavoro e le opzioni per la correzione:
Casi d'uso | Opzioni di correzione |
---|---|
I componenti app-engine (utilizzati nell'immagine Docker :latest o :debian_component_based ) non sono compatibili con Debian 12. |
Crea la tua immagine da un'immagine Debian (Debian 11) compatibile per installare i componenti app-engine . |
I pacchetti di terze parti come docker o docker-buildx non sono inclusi nell'immagine :stable |
Se hai bisogno di questi pacchetti di terze parti, crea la tua immagine o installali manualmente nell'immagine Docker :stable . |
Cosa si deve fare se lo scanner rileva vulnerabilità nelle immagini Docker?
Le immagini Docker di Google Cloud CLI sono ospitate in Artifact Registry. Le immagini vengono scansionate quotidianamente e le vulnerabilità e le esposizioni comuni (CVE) vengono mitigato prima di ogni nuova release di gcloud. Tuttavia, se lo scanner ha rilevato delle vulnerabilità nel per le immagini Docker di Google Cloud CLI che non sono state risolte, segnalare un bug che include le seguenti informazioni:
- Il tipo di vulnerabilità.
- La posizione esatta nell'immagine.
Le vulnerabilità all'interno delle immagini del sistema operativo di base vengono gestite solo per garantire che Le immagini Docker di Google Cloud CLI utilizzano versioni stabili recenti di Debian Alpina Linux.