Dela via


Självstudie: Distribuera en container för oanvänd kapacitet med Azure Container Instances med hjälp av Azure CLI (förhandsversion)

SpotContainrar kombinerar enkelheten i ACI med den låga kostnaden för virtuella datorer med oanvänd kapacitet, vilket gör det enkelt och prisvärt för kunder att köra containerbaserade avbrottsbara arbetsbelastningar i stor skala. Använd Azure Container Instances för att köra serverlösa Spot-containrar. Distribuera ett program till en spotcontainer på begäran när du vill köra avbrottsbara, containerbaserade arbetsbelastningar på outnyttjad Azure-kapacitet till låg kostnad och du inte behöver en fullständig plattform för containerorkestrering som Azure Kubernetes Service.

I den här snabbstarten använder du Azure CLI för att distribuera en helloworld-container med hjälp av Spot-containrar. Några sekunder efter att du har kört ett enda distributionskommando kan du bläddra till containerloggarna:

  • Den här snabbstarten kräver version 2xxx senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.

Skapa en resursgrupp

Azure-containerinstanser måste, precis som alla Azure-resurser, distribueras i en resursgrupp. Resursgrupper gör det enkelt att organisera och hantera relaterade Azure-resurser.

Skapa först en resursgrupp med namnet myResourceGroup på platsen westus med följande kommando az group create :

az group create --name myResourceGroup --location westus

Skapa en container

Nu när du har en resursgrupp kan du köra en spotcontainer i Azure. Om du vill skapa en containergrupp för oanvänd kapacitet med Azure CLI anger du ett resursgruppsnamn, containerinstansnamn, containeravbildning och ny egenskap med namnet "priority" med värdet "Spot" till kommandot az container create . I den här snabbstarten använder du den offentliga mcr.microsoft.com/azuredocs/aci-helloworld avbildningen. Den här avbildningen paketerar en liten webbapp som skrivits i Node.js och som hanterar en statisk HTML-sida.

Du kan inte exponera dina spotcontainrar för Internet genom att ange en eller flera portar att öppna, en DNS-namnetikett eller båda. I den här snabbstarten distribuerar du en container med hjälp av helloworld-avbildningen utan en DNS-namnetikett. Det går inte att nå offentligt. Du kan fråga containerloggarna för att kontrollera att containern lyssnar på standardport 80.

Kör ett kommando som liknar följande för att starta en containerinstans.

az container create --resource-group acispotdemo --name acispotclitest --image mcr.microsoft.com/azuredocs/aci-helloworld --priority spot

Inom några sekunder bör du få ett svar från Azure CLI om att distributionen har slutförts. Kontrollera distributionens status med kommandot az container show:

az container show --resource-group acispotdemo --name acispotclitest --query "{ProvisioningState:provisioningState}" --out table

När du kör kommandot visas containerns fullständiga domännamn (FQDN) och dess etableringsstatus.

ContainerGroupName                               ProvisioningState
---------------------------------  -------------------
acispotclitest                        Succeeded

Om containerns ProvisioningState är Lyckades, grattis! Du har distribuerat ett program som körs i en dockercontainer till Azure.

Hämta containerloggarna

Om du behöver felsöka en container eller det program som körs av containern (eller bara se dess utdata), börjar du med att granska loggarna för containerinstansen.

Hämta containerinstansloggarna med kommandot az container logs:

az container logs --resource-group acispotdemo --name acispotclitest

Utdata visar loggarna för containern och bör visa utdata nedan

listening on port 80

Ansluta utdataströmmar

Förutom att granska loggarna kan du ansluta dina lokala standardströmmar för utdata och fel till containerns dataström.

Börja med att köra kommandot az container attach för att ansluta din lokala konsol till containerns utdataströmmar:

az container attach --resource-group acispotdemo --name acispotclitest

När du är ansluten uppdaterar du webbläsaren några gånger för att generera lite mer utdata. Avsluta med att koppla från konsolen med Control+C. Du bör se utdata som liknar följande:

Container 'acispotclitest' is in state 'Running'...
Start streaming logs:
listening on port 80

Rensa resurser

När du är klar med behållaren kan du ta bort den med kommandot az container delete:

az container delete --resource-group acispotdemo --name acispotclitest

Kontrollera att behållaren har tagits bort genom att köra kommandot az container list:

az container list --resource-group acispotdemo --output table

Containern acispotclitest bör inte visas i kommandots utdata. Om du inte har några andra containrar i resursgruppen visas inga utdata.

Om du är klar med resursgruppen acispotdemo och alla resurser den innehåller tar du bort den med kommandot az group delete :

az group delete --name acispotdemo

Nästa steg

I den här självstudien skapade du en spotcontainer på Azure Container Instances med en standardkvot- och borttagningsprincip med hjälp av Azure CLI.