Esercizio: Distribuire un'immagine Docker a un'istanza di Azure Container

Completato

L'istanza Azure Container consente di eseguire un'immagine Docker in Azure.

Nell'esercizio precedente l'app Web è stata inserita in un pacchetto e testata come immagine Docker locale. Ora si vuole usare l'output di tale esercizio e rendere disponibile l'applicazione Web a livello globale. Per assicurare la disponibilità, eseguire l'immagine come istanza di contenitore di Azure.

In questo esercizio si apprenderà come ricompilare l'immagine per l'app Web e caricarla in Registro Azure Container. Si userà il servizio di istanza di Azure Container per eseguire l'immagine.

Importante

Per eseguire questo esercizio è necessario disporre di una propria sottoscrizione di Azure e questo potrebbe comportare dei costi. Se non hai ancora una sottoscrizione di Azure, crea un account gratuito prima di iniziare.

Creare un registro contenitori

  1. Accedere al portale di Azure con la sottoscrizione di Azure.

  2. Dal menu della risorsa o nella pagina Home selezionare Crea una risorsa. Viene visualizzato il riquadro Crea una risorsa.

  3. Nel menu selezionare Contenitorie quindi Registro contenitori.

    Screenshot that shows Create a resource with Container Registry.

    Verrà visualizzato il riquadro Crea registro contenitori.

  4. Nella scheda Informazioni di base immettere i valori indicati di seguito per ogni impostazione.

    Impostazione Valore
    Dettagli di progetto
    Subscription Selezionare la sottoscrizione di Azure in cui sono consentite la creazione e la gestione delle risorse.
    Gruppo di risorse Selezionare Crea nuovo gruppo di risorse con nome learn-deploy-container-aci-rg. Occorre ricordare il nome selezionato perché verrà usato nel resto degli esercizi di questo modulo. Ricordarsi anche di pulire questa risorsa al termine del modulo.
    Dettagli istanza
    Nome registro Selezionare il nome desiderato. Il nome del registro deve essere univoco in Azure e contenere da 5 a 50 caratteri alfanumerici.
    Titolo Selezionare una località vicina.
    SKU Standard
  5. Selezionare Rivedi e crea. Quando viene visualizzata la notifica Convalida superata, selezionare Crea. Attendere il completamento della distribuzione del registro contenitori prima di continuare.

  6. Selezionare Vai alla risorsa. Il riquadro Registro contenitori mostra le informazioni essenziali sul registro contenitori.

  7. Nel menu della risorsa selezionare Chiavi di accesso in Impostazioni. Viene visualizzato il riquadro Chiavi di accesso relativo al registro contenitori.

  8. Se l'impostazione Utente amministratore è disabilitata, selezionare il dispositivo di scorrimento per abilitare la chiave di accesso Utente amministratore. Vengono visualizzati Nome utente e password per il registro contenitori.

  9. Prendere nota di Nome del registro, Server di accesso, Nome utente e Password per il registro contenitori.

    Nota

    In questo esercizio viene abilitato l'accesso all'account amministratore in modo da poter caricare immagini e testare il registro. In un ambiente di produzione è importante disabilitare l'accesso all'account Utente amministratore e usare Microsoft Entra ID Protection non appena si conferma che il registro funziona come previsto.

    Screenshot of the Access keys details.

Caricare l'immagine per l'app del sistema di prenotazioni di hotel in Registro Azure Container

  1. Nel prompt dei comandi locale eseguire il comando seguente, sostituendo <registry-name> con il nome del registro contenitori per contrassegnare l'immagine corrente reservationsystem con il nome del registro:

    docker tag reservationsystem:latest <registry-name>.azurecr.io/reservationsystem:latest
    
  2. Eseguire il comando docker image ls per verificare che l'immagine sia stata contrassegnata in modo corretto:

    docker image ls
    

    Verrà visualizzata una schermata simile all'output seguente:

    REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
    reservationsystem                             latest              a56281e7038f        4 minutes ago       1.76GB
    <registry-name>.azurecr.io/reservationsystem  latest              a56281e7038f        4 minutes ago       1.76GB
    
  3. Al prompt dei comandi accedere all'istanza di Registro Azure Container. Usare il comando docker login e specificare il server di accesso di registro annotato in precedenza. Immettere il nome utente e la password dalle chiavi di accesso quando richiesto.

    docker login <login-server>
    

    Nota

    Si potrebbe ricevere una risposta di errore da un daemon che indica che l'applicazione non è registrata con Microsoft Entra ID. Come indicato in precedenza in questo esercizio, è stata abilitata la chiave di accesso Utente amministratore per testare la distribuzione.

  4. Immettere il comando seguente, sostituendo <registry-name> con il nome del registro specifico per caricare l'immagine nel registro in Registro Azure Container:

    docker push <registry-name>.azurecr.io/reservationsystem:latest
    

    Attendere il completamento del caricamento. Questo processo può richiedere alcuni minuti per l'esecuzione del push di tutti gli oggetti dell'immagine nel repository. È possibile osservare lo stato di avanzamento di ogni oggetto da In attesa a Preparazione a Push a Con push.

Verificare il contenuto del registro

Per il resto dell'esercizio si torna al portale di Azure.

  1. Ritornare al registro contenitori nel portale di Azure.

  2. Nel menu delle risorse selezionare Repository in Servizi. Viene visualizzato il riquadro Repository relativo al registro contenitori.

  3. Verificare che sia visualizzato il repository reservationsystem. Selezionare il repository reservationsystem e verificare che contenga un'immagine con il tag latest.

    Screenshot showing the repository and tagged reservation system container image in the registry.

Caricare ed eseguire un'immagine usando l'istanza di Azure Container

  1. Nel portale di Azure selezionare Crea una risorsa. Viene visualizzato il riquadro Crea una risorsa.

  2. Nel menu delle risorse selezionare Contenitorie quindi Istanze di Container.

    Screenshot showing Container Instances.

    Viene visualizzato il riquadro Crea istanza di Container.

    Esistono diverse procedure per configurare un'istanza di Container. Impostare prima di tutto le informazioni del gruppo di risorse e i dettagli del contenitore. Configurare quindi le opzioni di rete del configurare e riavviare il criterio.

  3. Nella scheda Informazioni di base immettere i valori indicati di seguito per ogni impostazione.

    Impostazione Valore
    Dettagli di progetto
    Subscription Selezionare la sottoscrizione di Azure predefinita in cui sono consentite la creazione e la gestione delle risorse
    Gruppo di risorse Riutilizzare il gruppo di risorse esistente learn-deploy-container-aci-rg
    Dettagli contenitore
    Nome contenitore hotelsysteminstance
    Area Usare la località predefinita
    Origine immagine Docker Hub o altro registro
    Tipo di immagine Privata
    Immagine <nome-registro>.azurecr.io/reservationsystem:latest
    Server di accesso del registro delle immagini Immettere il nome del server di accesso per il registro
    Nome utente del registro delle immagini Immettere il nome utente per il registro
    Password del registro delle immagini Immettere la password per il registro
    OS Type (Tipo di sistema operativo) Linux
    Dimensione Lasciare impostata l'opzione predefinita per Dimensione su 1 vCPU, 1,5 GiB di memo, 0 GPU
  4. Al termine, selezionare Avanti: Rete.

  5. Nella scheda Rete immettere i valori seguenti per ogni impostazione.

    Impostazione Valore
    Tipo di rete Pubblico
    Etichetta del nome DNS Scegliere un nome univoco che verrà usato come parte dell'URL del contenitore.
    Porte
    Porte 80
    Protocollo porte TCP
  6. Al termine, selezionare Avanti: Avanzate.

  7. Nella scheda Avanzate immettere i valori indicati di seguito per ogni impostazione.

    Impostazione Valore
    Criterio di riavvio Sempre
    Variabili di ambiente lasciare vuote tutte le impostazioni
    Override comando lasciare vuoto
  8. Selezionare Rivedi e crea. Attendere il completamento della convalida e correggere eventuali errori, se necessario.

  9. Seleziona Crea.

  10. Creata la l’istanza di contenitore, selezionare Vai alla risorsa. Viene visualizzato il riquadro dell'istanza di contenitore.

  11. Nel riquadroPanoramica trovare il nome di dominio completo dell'istanza di contenitore.

    Screenshot that shows the New pane in Azure portal showing the Container properties with the FQDN highlighted.

  12. Usando un Web browser passare all'URL http://FQDN/api/reservations/1, sostituendo FQDN con il nome di dominio completo dell'istanza di contenitore. Usando ad esempio il nome di dominio completo nello screenshot precedente, si otterrà un risultato analogo al seguente:

    http://hotel.southcentralus.azurecontainer.io/api/reservations/1
    

    L'app Web deve rispondere con un oggetto JSON contenente i dettagli per la prenotazione 1.

Congratulazioni. L'immagine Docker è stata caricata in Registro Azure Container e l'immagine è stata eseguita usando il servizio di istanza di Azure Container.