Dela via


Uppgradera containrar till en ny version av Windows-operativsystemet

Gäller för: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016

Det här avsnittet beskriver hur du uppgraderar Windows-containrar till en ny version av Windows- eller Windows Server-operativsystemet. Det finns två steg för att uppgradera containrar:

  1. Uppgradera värden för container till den nya versionen av operativsystemet.
  2. Skapa nya containerinstanser med den nya versionen av operativsystemet.

Not

Om du bara behöver uppdatera (eller korrigera) din aktuella Windows-basoperativsystemcontaineravbildning kan du läsa uppdatera containrarna för att hämta den senaste korrigeringsavbildningen för dina containrar.

Uppgradera containervärd

Om du vill uppgradera containervärden till en nyare version av Windows eller Windows Server kan du antingen utföra en direkt uppgradering eller en ren installation. Eftersom containervärden och Windows-containrarna delar en enda kärna bör du se till att containerns version av basavbildningsoperativsystemet matchar värdoperativsystemets version. Du kan dock fortfarande ha en nyare version av container-värddatorn med en äldre basavbildning med Hyper-V isolering. I Windows Server 2022 kan du implementera det här scenariot med processisolering (i förhandsversion).

Skapa nya containerinstanser med den nya operativsystemversionen

Om du vill skapa de nya containerinstanserna måste du:

  • Hämta containerbasavbildningen
  • Redigera Dockerfile så att den pekar på den nya basavbildningen
  • Skapa och kör den nya appbilden
  • Tagga och skicka avbildningen till registret

Hämta containerbasavbildningen

När du har hämtat den nya Windows OS-versionen på containervärden följer du stegen nedan för att uppgradera basavbildningen:

  1. Välj den containerbasavbildningen du vill uppgradera till.

  2. Öppna en PowerShell-session som administratör och kör kommandot docker pull för att hämta en avbildning, beroende på vilken operativsystemversion du har valt:

    PS C:\> docker pull mcr.microsoft.com/windows/servercore:ltsc2022
    

    I det här exemplet hämtas Server Core version 20H2-basavbildningen.

  3. När avbildningen har laddats ned kan du kontrollera att den nya avbildningen har hämtats genom att köra kommandot docker-avbildningar för att returnera en lista över hämtade avbildningar:

    docker images
    

Redigera Dockerfile så att den pekar på den nya basavbildningen

Sedan vill du skapa och starta nya containerinstanser med den nya basbilden som du har hämtat. Om du vill automatisera den här processen redigerar du Dockerfile för att omdirigera den till den nya avbildningen.

Not

Om du vill uppgradera imagen för en container som just nu körs måste du stoppa containrarna med docker stop och sedan köra docker rm för att ta bort containrarna.

Öppna Dockerfile i en textredigerare och gör uppdateringarna. I följande exempel uppdateras Dockerfile till Server Core 20H2 med IIS-programmet.

FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 AS build-env
WORKDIR /app

COPY *.csproj ./
RUN PowerShell Install-WindowsFeature NET-Framework-45-ASPNET

FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["ServiceMonitor.exe", "w3svc"]

Skapa och kör den nya appbilden

När Dockerfile har uppdaterats måste du skapa och köra appbilden.

  1. Använd docker build- för att skapa avbildningen enligt nedan:

    docker build -t iss .
    
  2. Kör kommandot docker för att köra den nyligen skapade containern:

    docker run -d -p 8080:80 --name iss-app iss
    

Tagga och skicka avbildningen till registret

Om du vill tillåta att andra värdar återanvänder den nya avbildningen bör du tagga och sedan skicka containeravbildningen till registret.

  1. Använd docker-tagg för att tagga avbildningen på följande sätt:

    docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
    
  2. Använd docker push- för att skicka avbildningen till containerregistret på följande sätt:

    docker push <login-server> iss
    

Uppgradera containrar med en orkestrerare

Du kan också distribuera om dina Windows-containrar med hjälp av en orkestrerare, till exempel Azure Kubernetes Service och AKS på Azure Stack HCI. Orkestratorn tillhandahåller kraftfull automatisering för att göra detta i stor skala. För mer information, se Tutorial: Update an application in Azure Kubernetes Service eller Tutorial: Update an application in Azure Kubernetes Service on Azure Stack HCI.