Uppdatera containers i Azure Container Instances

Under normal drift av dina containerinstanser kan du behöva uppdatera de containrar som körs i en containergrupp. Du kanske till exempel vill uppdatera en egenskap, till exempel en avbildningsversion, ett DNS-namn eller en miljövariabel, eller uppdatera en egenskap i en container vars program har kraschat.

Uppdatera containrarna i en containergrupp som körs genom att distribuera om en befintlig grupp med minst en ändrad egenskap. När du uppdaterar en containergrupp startas alla containrar som körs i gruppen om på plats, vanligtvis på samma underliggande containervärd.

Anteckning

Det går inte att uppdatera avslutade eller borttagna containergrupper. När en containergrupp har avslutats (antingen är i tillståndet Lyckades eller Misslyckades) eller har tagits bort måste gruppen distribueras som ny. Se andra begränsningar.

Uppdatera en containergrupp

Så här uppdaterar du en befintlig containergrupp:

  • Utfärda kommandot create (eller använd Azure Portal) och ange namnet på en befintlig grupp
  • Ändra eller lägg till minst en egenskap för gruppen som stöder uppdatering när du distribuerar om. Vissa egenskaper stöder inte uppdateringar.
  • Ange andra egenskaper med de värden som du angav tidigare. Om du inte anger något värde för en egenskap återgår det till standardvärdet.

Tips

En YAML-fil hjälper till att underhålla en containergrupps distributionskonfiguration och ger en startpunkt för att distribuera en uppdaterad grupp. Om du använde en annan metod för att skapa gruppen kan du exportera konfigurationen till YAML med hjälp av az container export,

Exempel

I följande Azure CLI-exempel uppdateras en containergrupp med en ny DNS-namnetikett. Eftersom egenskapen DNS-namnetikett för gruppen är en som kan uppdateras, distribueras containergruppen om och dess containrar startas om.

Inledande distribution med DNS-namnetiketten myapplication-staging:

# Create container group
az container create --resource-group myResourceGroup --name mycontainer \
    --image nginx:alpine --dns-name-label myapplication-staging

Uppdatera containergruppen med en ny DNS-namnetikett, myapplication, och ange de återstående egenskaperna med de värden som användes tidigare:

# Update DNS name label (restarts container), leave other properties unchanged
az container create --resource-group myResourceGroup --name mycontainer \
    --image nginx:alpine --dns-name-label myapplication

Uppdatera fördelar

Den främsta fördelen med att uppdatera en befintlig containergrupp är snabbare distribution. När du distribuerar om en befintlig containergrupp hämtas dess behållaravbildningslager från dem som cachelagras av föregående distribution. I stället för att hämta alla avbildningslager från registret på det sätt som görs med nya distributioner hämtas endast ändrade lager (om några).

Program som baseras på större containeravbildningar som Windows Server Core kan se betydande förbättringar i distributionshastigheten när du uppdaterar i stället för att ta bort och distribuera nya.

Begränsningar

  • Alla egenskaper för en containergrupp stöder inte uppdateringar. Om du vill ändra vissa egenskaper för en containergrupp måste du först ta bort och sedan distribuera om gruppen. Se Egenskaper som kräver borttagning av containrar.
  • Alla containrar i en containergrupp startas om när du uppdaterar containergruppen. Du kan inte utföra en uppdatering eller omstart på plats av en specifik container i en grupp med flera containrar.
  • IP-adressen för en containergrupp behålls vanligtvis mellan uppdateringar, men är inte garanterad att vara densamma. Så länge containergruppen distribueras till samma underliggande värd behåller containergruppen sin IP-adress. Även om det är ovanligt finns det vissa Azure-interna händelser som kan orsaka omdistribution till en annan värd. För att åtgärda det här problemet rekommenderar vi att du använder en DNS-namnetikett för dina containerinstanser.
  • Det går inte att uppdatera avslutade eller borttagna containergrupper. När en containergrupp har stoppats (är i tillståndet Avslutad ) eller tagits bort distribueras gruppen som ny.

Anteckning

Uppdateringskommandot kanske inte fungerar om Azure Container Group är kopplat till en Azure Storage-profil.

Egenskaper som kräver borttagning av container

Det går inte att uppdatera alla egenskaper för containergrupper. Om du till exempel vill ändra omstartsprincipen för en container måste du först ta bort containergruppen och sedan skapa den igen.

Ändringar av dessa egenskaper kräver borttagning av containergrupper före omdistributionen:

  • OS-typ
  • PROCESSOR-, minnes- eller GPU-resurser
  • Starta om princip
  • Nätverksprofil
  • Tillgänglighetszon

Viktigt

Nätverksprofiler har dragits tillbaka från och med API-versionen 2021-07-01 . Om du använder den här eller en senare version ignorerar du alla steg och åtgärder som rör nätverksprofiler.

När du tar bort en containergrupp och återskapar den "distribueras den inte om", utan skapas ny. Alla avbildningslager hämtas från registret, inte från de som cachelagras av en tidigare distribution. IP-adressen för containern kan också ändras på grund av att den distribueras till en annan underliggande värd.

Nästa steg

Omnämns flera gånger i den här artikeln är containergruppen. Varje container i Azure Container Instances distribueras i en containergrupp och containergrupper kan innehålla mer än en container.

Behållargrupper i Azure Container Instances

Distribuera en grupp med flera containrar

Stoppa eller starta containrar manuellt i Azure Container Instances