Dela via


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

Den här självstudien är en del av en självstudieserie som visar hur du använder containrar i ett Linux Service Fabric-kluster. I den här handledningen förbereds en applikation med flera containrar för användning med Service Fabric. I efterföljande handledningar används dessa bilder som en del av ett Service Fabric-program. I den här handledningen lär du dig att:

  • Klona programkälla från GitHub
  • Skapa en containeravbildning från programkällan
  • Distribuera en Azure Container Registry-instans (ACR)
  • Tagga en containeravbildning för ACR
  • Ladda upp avbildningen till ACR

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

Förutsättningar

  • Linux-utvecklingsmiljö konfigurerad för Service Fabric. Följ anvisningarna här för att konfigurera Din Linux-miljö.
  • Den här handledningen kräver 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 klientdelswebbkomponent och en Redis-instans i serverdelen. Komponenterna paketeras i containeravbildningar.

Använd git för att 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 en docker-compose.yml-fil. Mappen "azure-vote" innehåller Python-klientdelstjänsten tillsammans med Dockerfile som används för att skapa avbildningen. Katalogen Röstning innehåller Service Fabric-programpaketet som distribueras till klustret. Dessa kataloger innehåller nödvändiga resurser för den här handledningen.

Skapa containeravbildningar

I katalogen azure-vote kör du följande kommando för att skapa avbildningen för frontend-webbkomponenten. Det här kommandot använder Dockerfile i den här katalogen för att skapa avbildningen.

docker build -t azure-vote-front .

Anmärkning

Om du får behörighet nekad följer du den här dokumentationen om 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 den azure-vote-front-avbildning 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 för att välja din prenumeration för att skapa Azure Container Registry. Du måste ange prenumerations-ID 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

Under resten av den här självstudien använder vi "acrName" som platshållare för det containerregisternamn som du har valt. Observera 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 som gavs till containerregistret när det skapades.

az acr login --name <acrName>

Kommandot returnerar meddelandet "Inloggningen lyckades" när den har slutförts.

Märk containeravbildningar

Varje containeravbildning måste taggas med loginServer-namnet på registret. Den här taggen används för dirigering när du laddar upp containeravbildningar till ett avbildningsregister.

Om du vill se en lista över 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

Kör följande kommando för att hämta namnet på loginServer:

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

Detta matar ut en tabell med följande resultat. Det här resultatet kommer att användas för att tagga din azure-vote-front image innan den förs över till containerregistret i nästa steg.

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

Tagga nu azure-vote-front-avbildningen med containerregistrets loginServer. Lägg också till :v1 i slutet av avbildningsnamnet. Den här taggen anger avbildningsversionen.

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

När bilden har taggats, kör du "docker images" för att verifiera operationen.

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

Överför avbildningar till registret

Ladda upp bilden azure-vote-front till registret.

I följande exempel ersätter du namnet på ACR loginServer med loginServer från din miljö.

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

Det tar några minuter att slutföra docker-push-kommandona.

Lista avbildningar i registret

Om du vill returnera en lista över avbildningar som har push-överförts till ditt Azure Container-register använder du 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 klar har containeravbildningen lagrats i en privat Azure Container Registry-instans. Den här avbilden distribueras från Azure Container Registry till ett Service Fabric-kluster i kommande handledningar.

Nästa steg

I den här handledningen hämtades ett program från GitHub och containeravbildningar skapades och lades upp i ett register. Följande steg har slutförts:

  • Klona programkälla från GitHub
  • Skapa en containeravbildning från programkällan
  • Distribuera en Azure Container Registry-instans (ACR)
  • Tagga en containeravbildning för ACR
  • Ladda upp avbildningen till ACR

Gå vidare till nästa självstudie för att lära dig mer om att paketera containrar i en Service Fabric-applikation med Yeoman.