Självstudie: Skapa containeravbildningar i ett Service Fabric-kluster i Linux

Den här självstudien ingår i en serie som visar hur du använder containrar i ett Linux Service Fabric-kluster. I den här självstudien förbereds ett program med flera container för användning med Service Fabric. I efterföljande självstudier används de här avbildningarna som en del i ett Service Fabric-program. I den här guiden får du lära du dig hur man:

  • klona programmets källkod från GitHub
  • Skapa en containeravbildning från programkällkoden
  • distribuera en ACR-instans (Azure Container Registry)
  • Tagga en containeravbildning för ACR
  • ladda upp avbildningen till ACR.

I den här självstudieserien får du lära du dig att:

Förutsättningar

  • Linux-utvecklingsmiljö konfigurerad för Service Fabric. Följ instruktionerna här för att konfigurera din Linux-miljö.
  • I den här självstudien krävs att du kör Azure CLI version 2.0.4 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa informationen i Installera Azure CLI.
  • Dessutom måste du ha en Azure-prenumeration tillgänglig. Mer information om en kostnadsfri utvärderingsversion finns här.

Hämta programkod

Exempelprogrammet som används i den här självstudien är en röstningsapp. Programmet består av en webbkomponent på klientsidan och en Redis-instans på serversidan. Komponenterna är paketerade i containeravbildningar.

Använd git och ladda ned en kopia av programmet till utvecklingsmiljön.

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

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

Lösningen innehåller två mappar och filen docker-compose.yml. Mappen azure-vote innehåller Python-tjänsten för klientdelen och den dockerfil som används till att skapa avbildningen. Katalogen Voting innehåller Service Fabric-programpaketet som distribueras till klustret. Dessa kataloger innehåller de resurser som behövs i den här självstudien.

Skapa containeravbildningar

Öppna katalogen azure-vote och kör följande kommando för att skapa avbildningen för webbkomponenten på klientsidan. I kommandot används dockerfilen i katalogen till att skapa avbildningen.

docker build -t azure-vote-front .

Anteckning

Om du får ett meddelande om nekad åtkomst följer du anvisningarna i den här dokumentationen som beskriver hur du arbetar med Docker utan sudo.

Det här kommandot kan ta lite tid eftersom alla nödvändiga beroenden måste hämtas från Docker Hub. När du är klar använder du kommandot docker images för att se avbildningen azure-vote-front som du nyss skapade.

docker images

Distribuera Azure Container Registry

Kör först kommandot az login för att logga in på ditt Azure-konto.

az login

Använd sedan kommandot az account till att välja din prenumeration och skapa Azure-containerregistret. Du måste ange prenumerations-ID:t för din Azure-prenumeration i stället för <subscription_id>.

az account set --subscription <subscription_id>

När du distribuerar ett Azure Container Registry behöver du först en resursgrupp. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.

Skapa en resursgrupp med kommandot az group create. I det här exemplet skapas en resursgrupp med namnet myResourceGroup i regionen westus.

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

Skapa ett Azure Container-register med kommandot az acr create . Ersätt <acrName> med namnet på det containerregister som du vill skapa under din prenumeration. Det här namnet måste vara alfanumeriskt och unikt.

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

I resten av den här självstudien använder vi acrName som platshållare för det containerregisternamn du väljer. Skriv ned det här värdet.

Logga in på containerregistret

Logga in på din ACR-instans innan du skickar bilder till den. Använd kommandot az acr login till att slutföra åtgärden. Ange det unika namn du angav för containerregistret när det skapades.

az acr login --name <acrName>

Du får ett meddelande om att inloggningen lyckades när inloggningen är klar.

Tagga containeravbildningar

Varje containeravbildning måste taggas med namnet på inloggningsservern för registret. Den här taggen används till routning när du push-överför containeravbildningar till ett avbildningsregister.

Om du vill se en lista med aktuella avbildningar använder du kommandot docker images.

docker images

Utdata:

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

Du hämtar namnet på inloggningsservern genom att köra följande kommando:

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

Utdata är en tabell med följande resultat. Resultatet kommer att användas när du ska tagga avbildningen azure-vote-front innan du push-överför den till containerregistret i nästa steg.

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

Tagga nu avbildningen azure-vote-front med namnet på inloggningsservern för containerregistret. Lägg även till :v1 i slutet av avbildningens namn. Den här taggen anger versionsnumret för avbildningen.

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

När taggningen är färdig verifierar du åtgärden genom att köra ”docker images”.

Utdata:

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

Push-överför avbildningar till registret

Push-överför avbildningen azure-vote-front till registret.

Använd följande exempel och ersätt namnet på ACR-inloggningsservern med inloggningsnamnet från din miljö.

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

Docker push-kommandona tar ett par minuter att slutföra.

Lista med avbildningar i registret

Du kan returnera en lista med avbildningar som push-överförts till Azure-containerregistret med kommandot az acr repository list. Uppdatera kommandot med namnet på ACR-instansen.

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

Utdata:

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

När självstudien är färdig har behållaravbildningen lagrats i en privat Azure Container Registry-instans. Den här avbildningen distribueras från ACR till ett Service Fabric-kluster i efterföljande självstudier.

Nästa steg

I den här självstudien hämtades ett program från GitHub. Sedan skapades och push-överfördes containeravbildningar till ett register. Följande steg har slutförts:

  • klona programmets källkod från GitHub
  • Skapa en containeravbildning från programkällkoden
  • distribuera en ACR-instans (Azure Container Registry)
  • Tagga en containeravbildning för ACR
  • ladda upp avbildningen till ACR.

Gå vidare till nästa självstudie om du vill veta mer om paketering av containrar till ett Service Fabric-program med hjälp av Yeoman.