Esercitazione: Creare immagini del contenitore su un cluster Linux di Service Fabric

Questa esercitazione è la prima parte di una serie di esercitazioni in cui viene illustrato come usare i contenitori in un cluster Linux di Service Fabric. In questa esercitazione si prepara un'applicazione di più contenitori per l'uso in Service Fabric. Nelle esercitazioni successive, queste immagini vengono usate come parte di un'applicazione di Service Fabric. In questa esercitazione si apprenderà come:

  • Clonare l'origine applicazione da GitHub
  • Creare un'immagine del contenitore dall'origine applicazione
  • Distribuire un'istanza di Registro Azure Container
  • Assegnare tag a un'immagine del contenitore per Registro Azure Container
  • Caricare l'immagine in Registro Azure Container

In questa serie di esercitazioni si apprenderà come:

Prerequisites

  • Configurare l'ambiente di sviluppo Linux di Service Fabric. Seguire le istruzioni qui per configurare l'ambiente Linux.
  • Questa esercitazione richiede l'interfaccia della riga di comando di Azure 2.0.4 o versioni successive. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
  • Inoltre, richiede la presenza di una sottoscrizione di Azure disponibile. Per ulteriori informazioni su una versione di valutazione gratuita, passare qui.

Ottenere il codice dell'applicazione

L'applicazione di esempio usata in questa esercitazione è un'app di voto. L'applicazione è costituita da un componente Web front-end e un'istanza Redis back-end. I componenti sono inseriti in pacchetti nelle immagini del contenitore.

Usare git per scaricare una copia dell'applicazione per l'ambiente di sviluppo.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/

La soluzione contiene due cartelle e un file docker-compose.yml. La cartella 'azure-vote' contiene il servizio front-end Python unitamente al Dockerfile usato per creare l'immagine. La directory 'Voting' contiene il pacchetto dell'applicazione Service Fabric che viene distribuito nel cluster. Queste directory contengono le risorse necessarie per questa esercitazione.

Creare immagini del contenitore

All'interno della directory azure-vote eseguire il comando seguente per creare l'immagine per il componente Web front-end. Questo comando usa il Dockerfile in questa directory per creare l'immagine.

docker build -t azure-vote-front .

Nota

Se si riceve un messaggio di autorizzazione negata, seguire le istruzioni contenute in questa documentazione per usare Docker senza Sudo.

L'esecuzione di questo comando può richiedere tempo perché è necessario eseguire il pull di tutte le dipendenze necessarie da Hub Docker. Al termine, usare il comando docker images per visualizzare l'immagine azure-vote-front appena creata.

docker images

Distribuire Registro Azure Container

Eseguire per prima cosa il comando az login per accedere al proprio account Azure.

az login

Successivamente, usare il comando az account per scegliere la sottoscrizione per creare il Registro Azure Container. È necessario immettere l'ID sottoscrizione della sottoscrizione di Azure al posto di <subscription_id>.

az account set --subscription <subscription_id>

Prima di distribuire un'istanza di Registro Azure Container, è necessario che esista un gruppo di risorse. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.

Creare un gruppo di risorse con il comando az group create. In questo esempio viene creato un gruppo di risorse denominato myResourceGroup nell'area westus.

az group create --name <myResourceGroup> --location westus

Creare un'istanza di Registro Azure Container con il comando az acr create. Sostituire <acrName> con il nome del registro contenitori che si vuole creare nella sottoscrizione. Questo nome deve essere alfanumerico e univoco.

az acr create --resource-group <myResourceGroup> --name <acrName> --sku Basic --admin-enabled true

Nella parte restante di questa esercitazione si usa "acrName" come segnaposto per il nome del registro contenitori scelto. Prendere nota di questo valore.

Accedere al registro contenitori

Accedere all'istanza di Registro Azure Container prima di eseguire il push di immagini in essa. Usare il comando az acr login per completare l'operazione. Specificare il nome univoco assegnato al registro contenitori al momento della creazione.

az acr login --name <acrName>

Al termine, il comando restituisce un messaggio di accesso riuscito.

Assegnare tag alle immagini del contenitore

Ogni immagine del contenitore deve essere contrassegnata con il nome del server di accesso del registro. Questo tag viene usato per il routing quando si esegue il push delle immagini del contenitore nel registro delle immagini.

Per visualizzare un elenco di immagini correnti, usare il comando docker images.

docker images

Output:

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
azure-vote-front             latest              052c549a75bf        About a minute ago   913MB

Per ottenere il nome loginServer, eseguire questo comando:

az acr show --name <acrName> --query loginServer --output table

Viene visualizzata una tabella come i risultati seguenti. Questo risultato verrà usato per contrassegnare l'immagine azure-vote-front prima di eseguirne il push nel registro contenitori nel passaggio successivo.

Result
------------------
<acrName>.azurecr.io

Applicare ora all'immagine azure-vote-front il tag loginServer del registro contenitori. Aggiungere anche :v1 alla fine del nome dell'immagine. Questo tag indica la versione dell'immagine.

docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1

Una volta applicato il tag, eseguire 'docker images' per verificare l'operazione.

Output:

REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                       latest              052c549a75bf        23 minutes ago      913MB
<acrName>.azurecr.io/azure-vote-front  v1                  052c549a75bf        23 minutes ago      913MB

Eseguire il push delle immagini nel registro

Eseguire il push dell'immagine azure-vote-front nel registro.

Nell'esempio seguente sostituire il nome del loginServer di Registro Azure Container con il loginServer dell'ambiente in uso.

docker push <acrName>.azurecr.io/azure-vote-front:v1

I comandi di esecuzione del push di docker richiedono un paio di minuti per il completamento.

Elencare le immagini nel registro

Per restituire un elenco di immagini di cui è stato eseguito il push in Registro Azure Container, usare il comando az acr repository list. Aggiornare il comando con il nome dell'istanza di Registro Azure Container.

az acr repository list --name <acrName> --output table

Output:

Result
----------------
azure-vote-front

Al termine dell'esercitazione, l'immagine del contenitore sarà stata archiviata in un'istanza privata di Registro Azure Container. Questa immagine verrà distribuita da Registro Azure Container a un cluster Service Fabric nelle esercitazioni successive.

Passaggi successivi

In questa esercitazione, è stato effettuato il pull di un'applicazione da Github e sono state create immagini del contenitore ed è stato eseguito il push a un registro di sistema. Sono stati completati i passaggi seguenti:

  • Clonare l'origine applicazione da GitHub
  • Creare un'immagine del contenitore dall'origine applicazione
  • Distribuire un'istanza di Registro Azure Container
  • Assegnare tag a un'immagine del contenitore per Registro Azure Container
  • Caricare l'immagine in Registro Azure Container

Passare all'esercitazione successiva per ulteriori informazioni sulla creazione di pacchetti di contenitori in un'applicazione di Service Fabric usando Yeoman.