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 spotcontainrar. Distribuera ett program till en spotcontainer på begäran när du vill köra avbrottsfria, containerbaserade arbetsbelastningar på outnyttjad Azure-kapacitet till låg kostnad och du behöver inte 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 (liksom alla Azure-resurser) måste distribueras till en resursgrupp. Resursgrupper gör det enkelt att se 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 "prioritet" 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. Den kan inte nås 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 Docker-container 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.