![](https://cdn.qwiklabs.com/assets/labs/start_lab-f45aca49782d4033c3ff688160387ac98c66941d.png)
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Publish your container image to Container Registry
/ 100
Docker è una piattaforma aperta per lo sviluppo, la distribuzione e l'esecuzione di applicazioni. Con Docker puoi separare le tue applicazioni dalla tua infrastruttura e trattare la tua infrastruttura come un'applicazione gestita. Docker ti aiuta a distribuire, testare ed eseguire il deployment del codice più velocemente e a ridurre il ciclo tra scrittura ed esecuzione del codice.
Per farlo combina le funzionalità di containerizzazione dei kernel con flussi di lavoro e strumenti che ti aiutano a gestire le tue applicazioni e a eseguirne il deployment.
I container Docker possono essere utilizzati direttamente in Kubernetes, il che consente di eseguirli facilmente in Kubernetes Engine. Dopo aver appreso gli elementi essenziali di Docker, avrai le competenze per iniziare a sviluppare applicazioni Kubernetes e containerizzate.
In questo lab, imparerai a:
Si tratta di un lab di livello base. È adatto a chi ha poca o nessuna esperienza con Docker e i container. Suggeriamo, ma non è obbligatoria, esperienza con la riga di comando e Cloud Shell.
Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Avvia lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.
Con questo lab pratico avrai la possibilità di completare le attività in prima persona, in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.
Per completare il lab, avrai bisogno di:
Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si apre una finestra popup per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:
Fai clic su Apri console Google Cloud (o fai clic con il tasto destro del mouse e seleziona Apri link in finestra di navigazione in incognito se utilizzi il browser Chrome).
Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.
Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.
Se necessario, copia il Nome utente di seguito e incollalo nella finestra di dialogo di accesso.
Puoi trovare il Nome utente anche nel riquadro Dettagli lab.
Fai clic su Avanti.
Copia la Password di seguito e incollala nella finestra di dialogo di benvenuto.
Puoi trovare la Password anche nel riquadro Dettagli lab.
Fai clic su Avanti.
Fai clic nelle pagine successive:
Dopo qualche istante, la console Google Cloud si apre in questa scheda.
Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud. Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.
Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo PROJECT_ID. L'output contiene una riga che dichiara il PROJECT_ID per questa sessione:
gcloud
è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.
Fai clic su Autorizza.
L'output dovrebbe avere ora il seguente aspetto:
Output:
Output:
Output di esempio:
gcloud
, in Google Cloud, fai riferimento alla Panoramica dell'interfaccia a riga di comando gcloud.
(Output comando)
Questo semplice container restituisce Hello from Docker!
sul tuo schermo. Sebbene il comando sia semplice, osserva nell'output il numero di passaggi eseguiti. Il daemon Docker ha cercato l'immagine Hello World, non l'ha trovata in locale, ha eseguito il pull dell'immagine da un registro pubblico chiamato Docker Hub, ha creato un container dall'immagine e ha eseguito il container per conto tuo.
(Output comando)
Questa è l'immagine di cui è stato eseguito il pull dal registro pubblico Docker Hub. L'ID immagine è nel formato hash SHA256: questo campo specifica l'immagine Docker di cui è stato effettuato il provisioning. Quando il daemon Docker non riesce a trovare un'immagine in locale, per impostazione predefinita la cercherà nel registro pubblico.
(Output comando)
Nota che la seconda volta che esegui il comando, il daemon Docker trova l'immagine nel registro locale ed esegue il container da quell'immagine. Non è necessario eseguire il pull dell'immagine da Docker Hub.
(Output comando)
Non ci sono container in esecuzione. Hai già effettuato l'uscita dai container Hello World eseguiti in precedenza.
docker ps -a
:(Output comando)
Viene visualizzato Container ID
, un UUID generato da Docker per identificare il container e altri metadati sull'esecuzione. Anche gli oggetti Names
del container vengono generati in modo casuale, ma possono essere specificati con docker run --name [container-name] hello-world
.
In questa sezione creerai un'immagine Docker basata su un'applicazione node semplice.
test
.Dockerfile
:Questo file fornisce istruzioni al daemon Docker su come creare la tua immagine.
"."
) al container.Dockerfile
. Ora scriverai l'applicazione node e successivamente creerai l'immagine.
Questo è un semplice server HTTP che ascolta sulla porta 80 e restituisce "Hello World".
Ora crea l'immagine.
"."
, che indica la directory attuale, quindi devi eseguire questo comando dalla directory che contiene il Dockerfile:L'esecuzione di questo comando potrebbe richiedere un paio di minuti. Al termine, l'output dovrebbe essere simile al seguente:
-t
serve per nominare e taggare un'immagine con la sintassi name:tag
. Il nome dell'immagine è node-app
e il tag
è 0.1
. Il tag è altamente consigliato durante la creazione di immagini Docker. Se non specifichi un tag, verrà impostato automaticamente latest
e sarà più difficile distinguere le immagini più recenti da quelle più vecchie. Nota inoltre che ogni riga nel Dockerfile
sopra genera livelli container intermedi man mano che l'immagine viene creata.
L'output dovrebbe essere simile al seguente:
Nota che node
è l'immagine di base e node-app
è l'immagine che hai creato. Non puoi rimuovere node
senza prima rimuovere node-app
. La dimensione dell'immagine è relativamente piccola rispetto alle VM. Altre versioni dell'immagine node come node:slim
e node:alpine
possono offrirti immagini ancora più piccole per una più facile portabilità. La riduzione delle dimensioni dei container viene approfondita in Argomenti avanzati. Puoi visualizzare tutte le versioni nel repository ufficiale nella sezione node.
(Output comando)
Il flag --name
ti consente di assegnare un nome al container, se vuoi. -p
indica a Docker di mappare la porta 4000 dell'host alla porta 80 del container. Ora puoi raggiungere il server all'indirizzo http://localhost:4000
. Senza la mappatura della porta, non saresti in grado di raggiungere il container su localhost.
+
) e testa il server:(Output comando)
Il container verrà eseguito finché è in esecuzione il terminale iniziale. Se vuoi che il container venga eseguito in background (non vincolato alla sessione del terminale), devi specificare il flag -d
.
(Output comando)
docker ps
. Puoi esaminare i log eseguendo docker logs [container_id]
.docker logs 17b
se l'ID container è 17bcaca6f....
(Output comando)
Ora modifica l'applicazione.
app.js
con un editor di testo di tua scelta (ad esempio nano o vim) e sostituisci "Hello World" con un'altra stringa:0.2
:(Output comando)
Nota nel passaggio 2 che stai utilizzando un livello di cache esistente. Dal passaggio 3 in poi, i livelli vengono modificati perché hai apportato una modifica in app.js
.
(Output comando)
(Output comando)
(Output comando)
Ora che hai familiarità con la creazione e l'esecuzione dei container, esamina alcune pratiche di debug.
docker logs [container_id]
. Se vuoi seguire l'output del log mentre il container è in esecuzione, utilizza l'opzione -f
.(Output comando)
A volte potresti voler avviare una sessione Bash interattiva all'interno del container in esecuzione.
docker exec
. Apri un altro terminale (in Cloud Shell fai clic sull'icona +) e testa il server:I flag -it
ti consentono di interagire con un container allocando uno pseudo-TTY e mantenendo stdin aperto. Nota che bash è stato eseguito nella directory (/app) WORKDIR
specificata nel Dockerfile
. Da qui, hai una sessione di shell interattiva all'interno del container di cui eseguire il debug.
(Output comando)
(Output comando)
(Output comando)
--format
per ispezionare campi specifici del file JSON restituito. Ad esempio:(Output di esempio)
Per ulteriori informazioni sul debug, consulta le seguenti risorse della documentazione di Docker:
Ora eseguirai il push della tua immagine in Google Artifact Registry. Dopodiché rimuoverai tutti i container e le immagini per simulare un nuovo ambiente, quindi eseguirai il pull dei container e li eseguirai. Ciò dimostrerà la portabilità dei container Docker.
Per eseguire il push delle immagini nel tuo registro privato ospitato da Artifact Registry, devi taggare le immagini con un nome di registro. Il formato è <regional-repository>-docker.pkg.dev/my-project/my-repo/my-image
.
Prima di eseguire il push delle immagini, devi creare il repository di destinazione. Il push di un'immagine non può attivare la creazione di un repository e l'account di servizio Cloud Build non dispone delle autorizzazioni per creare repository.
Dal Menu di navigazione, sotto CI/CD vai ad Artifact Registry > Repository.
Fai clic sull'icona +CREA REPOSITORY accanto a Repository.
Specifica my-repository
come nome del repository.
Scegli Docker come formato.
In Tipo di località, seleziona Regione, quindi scegli la località
Fai clic su Crea.
Prima di eseguire il push o il pull delle immagini, configura Docker in modo che utilizzi Google Cloud CLI per autenticare le richieste ad Artifact Registry.
Y
.Il comando aggiorna la configurazione Docker. Ora puoi connetterti con Artifact Registry nel tuo progetto Google Cloud per eseguire il push e il pull delle immagini.
node-app:0.2
.(Output comando)
Output comando (il tuo potrebbe essere diverso):
Una volta completato il push, dal Menu di navigazione, sotto CI/CD vai ad Artifact Registry > Repository.
Fai clic su my-repository. Dovresti vedere il container Docker node-app
creato:
Potresti avviare una nuova VM, accedervi tramite SSH e installare gcloud. Per semplicità, rimuovi tutti i container e le immagini per simulare un nuovo ambiente.
Devi rimuovere le immagini figlio (di node:lts
) prima di rimuovere l'immagine node.
(Output comando)
A questo punto dovresti avere un ambiente pseudo-nuovo.
(Output comando)
Fai clic su Controlla i miei progressi per verificare l'attività eseguita. Se hai pubblicato un'immagine container in Artifact Registry, vedrai un punteggio di valutazione.
Qui viene mostrata la portabilità dei container. Finché Docker è installato sull'host (on-premise o VM), può eseguire il pull delle immagini da registri pubblici o privati ed eseguire i container in base a questa immagine. Non ci sono dipendenze dell'applicazione che devono essere installate sull'host ad eccezione di Docker.
Complimenti! In questo lab hai svolto varie attività pratiche, inclusa l'esecuzione di container in base a immagini pubbliche da Docker Hub. Hai anche creato immagini container e ne hai eseguito il push in Google Artifact Registry. Inoltre, il lab ti ha fornito le competenze per eseguire efficacemente il debug dei container in esecuzione. Infine, hai acquisito esperienza nell'esecuzione di container in base a immagini estratte da Google Artifact Registry, migliorando la tua comprensione e conoscenza di Docker.
… per utilizzare al meglio le tecnologie Google Cloud. I nostri corsi ti consentono di sviluppare competenze tecniche e best practice per aiutarti a metterti subito al passo e avanzare nel tuo percorso di apprendimento. Offriamo vari livelli di formazione, dal livello base a quello avanzato, con opzioni di corsi on demand, dal vivo e virtuali, in modo da poter scegliere il più adatto in base ai tuoi impegni. Le certificazioni ti permettono di confermare e dimostrare le tue abilità e competenze relative alle tecnologie Google Cloud.
Ultimo aggiornamento del manuale: 29 febbraio 2024
Ultimo test del lab: 29 febbraio 2024
Copyright 2025 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.
Questi contenuti non sono al momento disponibili
Ti invieremo una notifica via email quando sarà disponibile
Bene.
Ti contatteremo via email non appena sarà disponibile
One lab at a time
Confirm to end all existing labs and start this one