Distribuera en Docker-avbildning till en Azure-containerinstans

Slutförd

Azure Container Instance är en tjänst som läser in och kör Docker-avbildningar på begäran. Azure Container Instance-tjänsten kan hämta en avbildning från ett register, till exempel Docker Hub eller Azure Container Registry.

Företaget vill köra sina webbappar med Azure. Därför är det klokt att lagra avbildningarna i Azure Container Registry och köra dem med hjälp av Azure Container Instance-tjänsten.

I den här lektionen får du lära dig hur du laddar upp en Docker-avbildning till Azure Container Registry. Sedan kör du avbildningen med hjälp av Azure Container Instance-tjänsten.

Använda Azure Container Registry för att lagra en container

Azure Container Registry är en registervärdtjänst som tillhandahålls av Azure. Varje Azure Container Registry-resurs som du skapar är ett separat register med en unik URL. Dessa register är privata, vilket innebär att de kräver autentisering för att skicka eller hämta bilder. Azure Container Registry körs i molnet och ger liknande nivåer av skalbarhet och tillgänglighet som andra Azure-tjänster.

Du kan skapa ett register med hjälp av Azure-portalen eller Azure-kommandoradsgränssnittet (CLI). Du kan använda Cloud Shell i Azure-portalen eller en lokal installation av Azure CLI. Tänk på att du måste skapa en resursgrupp innan du kan skapa registret. När du skapar en resursgrupp rekommenderar vi att du väljer närmaste region. I det här exemplet är mygroupresursgruppens namn , och platsen är USA, västra.

Du behöver inte köra något av följande kommandon. Det ska vi göra i nästa övning.

Kommentar

Du behöver ett unikt namn för containern. Du kan kontrollera om ett namn redan används här.

az group create --name mygroup --location westus
az acr create --name <unique name> --resource-group mygroup --sku standard --admin-enabled true

Olika SKU:er ger olika nivåer av skalbarhet och lagring.

Azure Container Registry-lagringsplatser är privata, vilket innebär att de inte stöder oautentiserad åtkomst. Om du vill hämta avbildningar från en Azure Container Registry-lagringsplats använder du kommandot docker login och anger webbadressen till registrets inloggningsserver. Webbadressen till inloggningsservern i ett register i Azure Container Registry har formatet <registry_name>.azurecr.io.

docker login myregistry.azurecr.io

Docker-inloggningen uppmanar dig att ange ett användarnamn och lösenord. Om du vill hitta den här informationen går du till Azure-portalen och letar upp åtkomstnycklarna för registret eller kör följande kommando.

az acr credential show --name myregistry --resource-group mygroup

Du skickar en avbildning från den lokala datorn till ett Docker-register med hjälp docker push av kommandot . Innan du skickar en avbildning måste du skapa ett alias för avbildningen som anger lagringsplatsen och taggen som Docker-registret skapar. Lagringsplatsens namn måste vara av formuläret *<login_server>/<image_name>:<tag/.> Utför åtgärden med hjälp av kommandot docker tag. I följande exempel skapas ett alias för reservationssystemsbilden.

docker tag reservationsystem myregistry.azurecr.io/reservationsystem:v2

Om du kör docker image lsvisas två poster för avbildningen: en med det ursprungliga namnet och den andra med det nya aliaset.

När du har kört taggkommandot kan du ladda upp avbildningen till registret i Azure Container Registry med hjälp av följande kommando.

docker push myregistry.azurecr.io/reservationsystem:v2

Kontrollera att avbildningen har laddats upp korrekt genom att ange lagringsplatserna i registret med följande kommando.

az acr repository list --name myregistry --resource-group mygroup

Du kan också lista avbildningarna i registret med acr repository show kommandot .

az acr repository show --repository reservationsystem --name myregistry --resource-group mygroup

Kommentar

Du ser minst två taggar för varje avbildning på en lagringsplats. En tagg är det värde som du angav i kommandot acr build (v1 i föregående exempel). Den andra blir latest (senaste). Varje gång du återskapar en avbildning skapar Azure Container Registry automatiskt taggen senaste som ett alias för den senaste versionen av avbildningen.

Använda Azure Container Instance för att köra en avbildning

Med tjänsten Azure Container Instance kan du läsa in en avbildning från Azure Container Registry och köra den i Azure.

Du skapar en containerinstans och startar avbildningen som körs med kommandot az container create. Ange användarnamn och lösenord för registret i parametrarna registry-username och registry-password. Instansen tilldelas en IP-adress. Du når instansen med den här IP-adressen. Du kan även ange ett DNS-namn om du vill referera till instansen via en mer användarvänlig etikett. Observera att du anger avbildningen som en URL som refererar till ditt register (myregistry) i Azure Container Registry-tjänsten (azurecr.io). Om du använder Docker Hub eller något annat register ersätter du den här URL:en med URL:en för avbildningen i registret.

az container create --resource-group mygroup --name myinstance --image myregistry.azurecr.io/myapp:latest --dns-name-label mydnsname --registry-username <username> --registry-password <password>

Azure är värd för instansen med ett domännamn baserat på den DNS-etikett som du angav. Du hittar det fullständigt kvalificerade domännamnet för instansen genom att fråga IP-adressen för instansen.

az container show --resource-group mygroup --name myinstance --query ipAddress.fqdn

Du kan nå programmet med en webbläsare. Du kan navigera till den URL som returneras av det här kommandot. vi får lära oss mer i nästa lektion.