Puoi eseguire un singolo container su una VM o su ogni VM in un gruppo di istanze gestite (MIG). Per farlo, specifica un'immagine container e i parametri di configurazione quando crei un'istanza VM o un modello di istanza.
Questo documento descrive le opzioni di configurazione per l'esecuzione di container sulle istanze Compute Engine.
Prima di iniziare
- Se non hai dimestichezza con i container, leggi l'articolo Container su Compute Engine.
- Se non hai dimestichezza con Docker, leggi la documentazione di Docker.
- Scopri di più sul deployment dei container su Compute Engine.
- 
  
  Se non l'hai ancora fatto, configura l'autenticazione.
  L'autenticazione verifica la tua identità per l'accesso a Google Cloud servizi e API. Per eseguire
  codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
  Compute Engine selezionando una delle seguenti opzioni:
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: ConsoleWhen you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando: gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata. 
- Set a default region and zone.
 Quando crei un'istanza o un template di istanza da utilizzare per il deployment dei container su VM e MIG, specifica la configurazione del container utilizzando la console Google Cloud o Google Cloud CLI. Le sezioni seguenti descrivono come configurare i container sulle istanze VM, ma puoi configurare le seguenti opzioni anche quando crei un template di istanza. Utilizza la console Google Cloud o Google Cloud CLI per configurare le opzioni per le istanze VM in un template di istanza. Puoi utilizzare i comandi docker runper configurare un container su un'istanza VM che esegue Container-Optimized OS o specificare il comandodocker runin uno script di avvio per creare e configurare una VM. Per saperne di più, consulta Utilizzare gli script di avvio per eseguire il deployment dei container sulle VM.Specifica di una policy di riavvioPuoi impostare una policy di riavvio per specificare se riavviare un container all'uscita. La policy predefinita è sempre quella del riavvio. Puoi anche impostare la policy in modo che il servizio si riavvii in caso di errore o che non si riavvii mai. docker runUtilizza il flag --restartdel comandodocker run. I tentativi ripetuti di riavviare un container sono basati sul comportamento predefinito di Docker, come specificato nella documentazione di riferimento di Docker--restart.Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Nella sezione Policy di riavvio, seleziona la policy di riavvio per il container.
- Per confermare i dettagli del container, fai clic su Seleziona.
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il flag --container-restart-policyper specificare la policy di riavvio del container:- always(valore predefinito)
- on-failure
- never
 L'esempio seguente avvia un container con la policy di riavvio on-failure, il che significa che il riavvio avviene solo quando il codice di uscita del container è diverso da zero:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-restart-policy on-failure Utilizza il comando gcloud compute instances update-containercon il flag--container-restart-policyper la policy di riavvio su un container in esecuzione su una VM.Esecuzione di un container in modalità con privilegiPuoi eseguire un container in modalità con privilegi per consentire l'accesso a tutti i dispositivi sull'host. Per impostazione predefinita, i container vengono eseguiti come "non con privilegi" e non possono accedere ad alcun dispositivo. docker runUtilizza il flag --privilegeddel comandodocker run. Per saperne di più, consulta Privilegi di runtime e funzionalità di Linux.Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Seleziona Esegui con privilegi.
- Per confermare i dettagli del container, fai clic su Seleziona.
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il flag --container-privilegedper eseguire un container con privilegi di runtime. L'esempio seguente avvia un container busybox in modalità con privilegi:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-privileged Utilizza il comando gcloud compute instances update-containercon il flag--container-privilegedper aggiornare un container su una VM. Utilizza il flag--no-container-privilegedper disattivare la modalità con privilegi.Allocazione di un buffer per STDIN nel runtime del containerPuoi allocare un buffer per STDINnel runtime del container per mantenere aperto lo streamSTDINin un container. Se non è impostato, le letture daSTDINnel container hanno sempre come risultatoEOF.Oltre ad allocare uno pseudo-TTY, è necessario mantenere aperto lo stream STDINper stabilire una shell interattiva nel container e per consentire al container di ricevere l'input standard da un carattere barra verticale.docker runUtilizza il flag --interactive(-i) del comandodocker run. Per saperne di più, consulta la documentazione relativa al flag--interactive.Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Seleziona Alloca un buffer per STDIN.
- Per confermare i dettagli del container, fai clic su Seleziona.
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il flag --container-stdinper allocare un buffer perSTDINnel runtime del container. L'esempio seguente avvia un container e mantiene aperto il relativoSTDIN:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-stdin Utilizza il comando gcloud compute instances update-containercon il flag--container-stdinper aggiornare un container su una VM. Utilizza il--no-container-stdinflag per disattivare l'allocazione di un buffer perSTDIN.Allocazione di uno pseudo-TTYL'allocazione di uno pseudo-TTY per un container è necessaria per stabilire una shell interattiva al suo interno (insieme all'allocazione di un buffer per STDIN). docker runUtilizza il flag --tty (-t)del comandodocker run. Per ulteriori informazioni, vedi il flag--tty.Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Seleziona Alloca uno pseudo-TTY.
- Per confermare i dettagli del container, fai clic su Seleziona.
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il flag --container-ttyper allocare uno pseudo-TTY. L'esempio seguente avvia un container e alloca uno pseudo-TTY:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-stdin \ --container-tty Utilizza il comando gcloud compute instances update-containercon il flag--container-ttyper aggiornare un container su una VM. Utilizza il flag--no-container-ttyper non allocare uno pseudo-TTY.Override del comando predefinito da eseguire all'avvio del containerL' ENTRYPOINTdi un'immagine container specifica quale eseguibile eseguire all'avvio del container e ti consente di eseguire il container come se fosse quel file binario.Puoi eseguire l'override del comando ENTRYPOINTdell'immagine container.docker runUtilizza il flag --entrypoint(solo comando, senza argomenti) del comandodocker run. Scopri di più suENTRYPOINTe sul flag--entrypoint.Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Nel campo Comando, inserisci un singolo comando eseguibile senza
parametri, ad esempio uptime.
- Per confermare i dettagli del container, fai clic su Seleziona.
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il flag --container-commandper eseguire l'override dell'immagine del containerENTRYPOINT. Nell'esempio seguente, il comandouptimeviene eseguito in un container busybox per visualizzare il tempo trascorso dall'ultimo avvio:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-command "uptime" Utilizza il comando gcloud compute instances update-containercon il flag--container-commandper aggiornare un comando per un container su una VM.Utilizza il flag --clear-container-commandcon il comandoupdate-containerper cancellare il comando predefinito per il container aggiornato.Passaggio di argomenti al comando ENTRYPOINT del containerPuoi passare (aggiungere) argomenti al comando del container ENTRYPOINTo eseguire l'override del comando del container predefinitoCMD.Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Nella sezione Argomenti, fai clic su Aggiungi argomento.
- Inserisci un argomento del comando per ogni box.
- Per confermare i dettagli del container, fai clic su Seleziona.
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il flag --container-argper passare argomenti a un comandoENTRYPOINTdell'immagine container. Utilizza un flag separato per ogni argomento.Il seguente esempio esegue il comando /bin/ashcon gli argomenti-c 'ls -l'in un container configurato per eseguire automaticamente busybox:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-command "/bin/ash" \ --container-arg="-c" \ --container-arg="ls -l" Utilizza il comando gcloud compute instances update-containercon i flag--container-argper aggiornare gli argomenti del comando per un container in esecuzione su una VM. L'aggiornamento sostituisce l'intero elenco di argomenti con il nuovo elenco.Utilizza il flag --clear-container-argscon il comandoupdate-containerper rimuovere tutti gli argomenti dalla dichiarazione del container.Configurazione delle opzioni del driver di logSe devi configurare le opzioni del driver di log, puoi creare uno script di avvio della VM per aggiornare il file di configurazione di Docker con le opzioni di logging di cui hai bisogno. Queste opzioni si applicano a tutti i container in esecuzione sulla VM e che non specificano le opzioni del driver di log. Ad esempio, lo script di avvio seguente imposta diverse opzioni, inclusa un'opzione per limitare le dimensioni dei log del container, quindi riavvia Docker sulla VM: cat <<EOF > /etc/docker/daemon.json { "live-restore": true, "storage-driver": "overlay2", "log-opts": { "max-size": "10m" } } EOF systemctl restart dockerImposta le variabili di ambientePuoi impostare le variabili di ambiente in un container. Viene preso in considerazione solo l'ultimo valore di KEYseKEYviene ripetuto più volte.docker runUtilizza il flag --envdel comandodocker run. Scopri come il motore Docker consente di impostare le variabili di ambiente.Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Nella sezione Variabili di ambiente, fai clic su Aggiungi variabile.
- Aggiungi o rimuovi le variabili di ambiente in base alle esigenze, una per riga.
- Per confermare i dettagli del container, fai clic su Seleziona.
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il flag --container-envper impostare le variabili di ambiente in un container. L'esempio seguente imposta tre variabili di ambiente:HOME,MODEeOWNER:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-env HOME=/home,MODE=test,OWNER=admin Utilizza il flag --container-env-fileper impostare le variabili di ambiente da un file locale. L'esempio seguente imposta le due variabili di ambiente dal fileenv.txt:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-env-file ./env.txt I contenuti del file env.txtsono:# this is a comment HOME=/home MODE=test OWNER=adminUtilizza il comando gcloud compute instances update-containercon il flag--container-envo--container-env-fileper aggiornare le variabili di ambiente per un container su una VM. In questo modo vengono aggiornate tutte le variabili presenti nella dichiarazione del container dell'istanza VM. Vengono aggiunte le variabili che non sono nella dichiarazione del container.Utilizza il flag --remove-container-envper rimuovere le variabili di ambiente quando aggiorni un container su una VM. L'esempio seguente rimuove le variabili di ambiente chiamateMODEeOWNER:gcloud compute instances update-container busybox-vm \ --remove-container-env MODE,OWNER Se una variabile di ambiente specificata non esiste, viene ignorata automaticamente. Montaggio di una directory host come volume di datiPuoi eseguire il montaggio di una directory da una VM host in un container. docker runUtilizza il flag --volumee il flag--mountcon il montaggiotype=binddel comandodocker run. Scopri come il motore Docker esegue il montaggio di una directory host come volume di dati.Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Nella sezione Montaggi volumi, fai clic su Aggiungi volume.
- Nell'elenco Tipo di volume, seleziona Directory e segui questi passaggi: - Nel campo Percorso di montaggio, specifica un percorso di montaggio nella struttura di directory di un container in cui montare una directory host.
- Nel campo Percorso host, specifica un percorso host per la directory dell'host da montare.
- Nell'elenco Modalità, specifica se montare la directory in modalità di lettura/scrittura o di sola lettura.
 
- Per confermare i dettagli del container, fai clic su Seleziona. 
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il flag --container-mount-host-pathper montare una directory della VM host in un container. Il seguente esempio monta la directory host/tmpnel container in/logsin modalità di lettura/scrittura:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-mount-host-path mount-path=/logs,host-path=/tmp,mode=rw Specifica mode=roper montare una directory host in modalità di sola lettura.Utilizza il comando gcloud compute instances update-containercon il flag--container-mount-host-pathper aggiornare i montaggi delle directory host su un container. Utilizza il flag--remove-container-mountsper rimuovere i montaggi dei volumi con i percorsi di montaggio specificati. Nell'esempio riportato di seguito viene rimosso un montaggio del percorso host conmount-path=/logs:gcloud compute instances update-container busybox-vm \ --remove-container-mounts /logs Se il percorso di montaggio specificato non esiste, viene ignorato automaticamente. Montaggio del file system tmpfs come volume di datiPuoi montare un file system tmpfs vuoto in un container. Un file system tmpfs vuoto è simile a un volume EmptyDirdi Google Kubernetes Engine conmedium:Memory. A differenza di Docker, in cui i datitmpfsvengono eliminati al riavvio del container, contmpfsin un container Compute Engine, il volume e i relativi dati rimangono invariati durante i riavvii del container e vengono eliminati solo al riavvio della VM.Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Nella sezione Montaggi volumi, fai clic su Aggiungi volume.
- Nell'elenco Tipo di volume, seleziona TmpFS.
- Nel campo Percorso di montaggio, specifica un percorso di montaggio nella struttura di directory di un container in cui vuoi montare un volume TmpFS.
- Nell'elenco Modalità, specifica se montare il volume TmpFS in modalità di lettura/scrittura o di sola lettura.
- Per confermare i dettagli del container, fai clic su Seleziona.
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il flag --container-mount-tmpfsper montare un file systemtmpfsvuoto in un container. Il seguente esempio monta un file systemtmpfsnel container in/cachein modalità di lettura/scrittura:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-mount-tmpfs mount-path=/cache Utilizza il comando gcloud compute instances update-containercon il flag--container-mount-tmpfsper aggiornare i montaggitmpfssu un container. Utilizza il flag--remove-container-mountsper rimuovere un montaggiotmpfscon il percorso di montaggio specificato durante l'aggiornamento. L'esempio seguente rimuove il montaggiotmpfsconmount-path=/cache:gcloud compute instances update-container busybox-vm \ --remove-container-mounts /cache Se il percorso di montaggio specificato non esiste, viene ignorato automaticamente. Montaggio di un disco permanente come volume di datiCon Container-Optimized OS 69 o versioni successive, puoi montare i dischi permanenti da una VM host in un container. Prerequisiti- Il disco deve avere un file system ext4o non avere alcun file system. Se non è presente un file system iniziale, l'agente di avvio del container formatta il disco inext4e sono supportati solo il montaggio e il collegamento in lettura/scrittura.
- Il disco deve essere collegato alla VM.
- Sono supportati sia i dispositivi senza partizioni sia le partizioni. Per i montaggi delle partizioni, il disco non può essere vuoto, ma deve contenere una tabella di partizione esistente. 
 Console- Vai alla pagina Crea un'istanza. 
- Nella sezione Container, fai clic su Esegui il deployment del container. 
- Nella pagina Configura container, segui questi passaggi: - Specifica un nome per l'immagine container.
- Nella sezione Montaggi volumi, fai clic su Aggiungi volume.
- Nell'elenco Tipo di volume, seleziona Disco.
- Nel campo Percorso di montaggio, specifica un percorso nella struttura di directory del container in cui vuoi montare il disco persistente.
- Dall'elenco Nome disco, seleziona un disco esistente da montare.
- Nel campo Partizione, specifica il numero della partizione da montare se il disco ha una tabella di partizione. Se il disco non ha partizioni, lascia vuoto questo campo.
- Nell'elenco Modalità, specifica se montare la directory in modalità di lettura/scrittura o di sola lettura.
- Per confermare i dettagli del container, fai clic su Seleziona.
 
- Continua con il processo di creazione della VM. 
 gcloudUtilizza il comando gcloud compute instances create-with-containero il comandogcloud compute instances update-containercon il flag--container-mount-diskper montare un disco permanente in un container.L'esempio seguente monta due dischi, my-data-diskemy-scratch-disk, nel container nei percorsi di montaggio/disks/data-diske/disks/scratch-disk.gcloud compute instances create-with-container busybox-vm \ --disk name=my-data-disk \ --create-disk name=my-scratch-disk,auto-delete=yes,image=ubuntu-1710-artful-v20180315,image-project=ubuntu-os-cloud \ --container-image docker.io/busybox:1.27 \ --container-mount-disk mount-path="/disks/data-disk",name=my-data-disk,mode=ro \ --container-mount-disk mount-path="/disks/scratch-disk",name=my-scratch-disk Tieni presente che il flag --diskallegamy-data-disk, il flag--create-diskcrea e allegamy-scatch-diske il flag--container-mount-diskmonta i dischi collegati al container. Poiché non è stato specificato unmodepermy-scratch-disk, il disco viene montato sul container in modalità di lettura/scrittura per impostazione predefinita.Utilizza il comando gcloud compute instances update-containercon il flag--container-mount-diskper montare altri dischi collegati o per modificare i montaggi dei dischi esistenti.Utilizza il flag --remove-container-mountsper rimuovere il montaggio di un volume del disco con il percorso di montaggio specificato. L'esempio seguente modifica la modalità di montaggio dimy-data-diskin lettura/scrittura e rimuove il montaggio del disco conmount-path="/disks/scratch-disk".gcloud compute instances update-container busybox-vm \ --container-mount-disk mount-path="/disks/data-disk",name=my-data-disk,mode=rw \ --remove-container-mounts "/disks/scratch-disk" Se il percorso di montaggio passato al flag --remove-container-mountsnon esiste, viene ignorato automaticamente.Pubblicazione delle porte del containerLe VM con container utilizzano la modalità di rete host, in cui un container condivide lo stack di rete dell'host e tutte le interfacce dell'host sono disponibili per il container. Le porte dei container hanno una mappatura one-to-one alle porte della VM host. Ad esempio, la porta 80 di un container viene mappata alla porta 80 della VM host. Compute Engine non supporta il flag di pubblicazione della porta ( -p) e non è necessario specificarlo per il funzionamento della mappatura.Per pubblicare le porte di un container, configura le regole firewall per consentire l'accesso alle porte della VM host. Le porte corrispondenti del container sono accessibili automaticamente, in base alle regole firewall. Esempio: pubblicazione della porta 80 per un container NGINX docker runConfigura il flag --network="host"quando utilizzi il comandodocker run. Scopri di più sulle impostazioni di rete del container e sulla modalità host.gcloudL'esempio seguente mostra come creare un'istanza VM con un container NGINX e consentire il traffico alla porta 80 del container. - Crea un'istanza VM con un container NGINX: - gcloud compute instances create-with-container nginx-vm \ --container-image gcr.io/cloud-marketplace/google/nginx1:1.15 \ --tags http-server - Il container condivide lo stack di rete della VM host e la porta 80 del container viene pubblicata sulla porta 80 della VM host. Il tag - http-serverviene utilizzato come tag target per la regola firewall creata nel passaggio successivo.
- Crea una regola firewall per consentire le connessioni alla porta 80 dell'istanza VM. La seguente regola firewall consente le connessioni HTTP alle istanze VM con il tag - http-server.- gcloud compute firewall-rules create allow-http \ --allow tcp:80 --target-tags http-server - Il container inizia automaticamente a ricevere traffico sulla porta 80. Non è necessario eseguire alcuna configurazione aggiuntiva. - Puoi creare regole firewall per combinazioni di protocollo:porta della VM host in cui il protocollo è - tcpo- udp. Queste regole consentono di gestire in modo efficace l'accesso dall'esterno della VM alle porte del container corrispondenti.
 Passaggi successivi- Scopri come eseguire il deployment di container Docker su Compute Engine.
- Scopri di più su Container-Optimized OS.
 Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate. Ultimo aggiornamento 2025-10-19 UTC. -