Condividi tramite


Aggiornare i contenitori a una nuova versione del sistema operativo Windows

Si applica a: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016

Questo argomento descrive come aggiornare i contenitori di Windows a una nuova versione del sistema operativo Windows o Windows Server. Esistono due passaggi per aggiornare i contenitori:

  1. Aggiornare l'host contenitore alla nuova versione del sistema operativo.
  2. Creare nuove istanze di contenitore usando la nuova versione del sistema operativo.

Nota

Se è necessario solo aggiornare (o applicare patch) all'immagine del contenitore del sistema operativo di base Windows attuale, consulta aggiornare i contenitori per ottenere l'immagine di patch più recente per i tuoi contenitori.

Aggiornare l'host del contenitore

Per aggiornare l'host del contenitore a una versione più recente di Windows o Windows Server, è possibile eseguire un aggiornamento sul posto o un'installazione pulita. Poiché l'host del contenitore e i contenitori di Windows condividono un singolo kernel, è necessario assicurarsi che la versione del sistema operativo dell'immagine di base del contenitore corrisponda a quella dell'host. Tuttavia, è comunque possibile avere una versione più recente dell'host contenitore con un'immagine di base più vecchia con isolamento Hyper-V. In Windows Server 2022 è possibile implementare questo scenario con isolamento del processo (in anteprima).

Creare nuove istanze di contenitore usando la nuova versione del sistema operativo

Per creare le nuove istanze del contenitore, è necessario:

  • Eseguire il pull dell'immagine di base del contenitore
  • Modificare il Dockerfile in modo che punti alla nuova immagine di base
  • Compilare ed eseguire la nuova immagine dell'app
  • Contrassegnare ed eseguire il push dell'immagine nel registro

Eseguire il pull dell'immagine di base del contenitore

Dopo aver eseguito il pull della nuova versione del sistema operativo Windows nell'host contenitore, seguire questa procedura per aggiornare l'immagine di base:

  1. Selezionare l'immagine di base del contenitore a cui si vuole eseguire l'aggiornamento.

  2. ** Aprire una sessione di PowerShell come amministratore e, a seconda della versione del sistema operativo scelta, eseguire il comando docker pull per scaricare un'immagine:

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

    Questo esempio scarica l'immagine base di Server Core versione 20H2.

  3. Al termine del download dell'immagine, è possibile verificare che la nuova immagine sia stata estratta eseguendo il comando docker images per restituire un elenco di immagini estratte:

    docker images
    

Modificare il Dockerfile in modo che punti alla nuova immagine di base

Successivamente, si vuole creare e avviare nuove istanze di contenitore usando la nuova immagine di base di cui è stato eseguito il pull. Per automatizzare questo processo, modificare il Dockerfile per reindirizzarlo alla nuova immagine.

Nota

Se si vuole aggiornare l'immagine per qualsiasi contenitore attualmente in esecuzione, è necessario arrestare i contenitori usando docker stop e quindi eseguire docker rm per rimuovere i contenitori.

Aprire il Dockerfile in un editor di testo e apportare gli aggiornamenti. Nell'esempio seguente il Dockerfile viene aggiornato a Server Core 20H2 con l'applicazione IIS.

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"]

Compilare ed eseguire la nuova immagine dell'app

Dopo aver aggiornato il Dockerfile, è necessario compilare ed eseguire l'immagine dell'app.

  1. Usare docker build per compilare l'immagine come illustrato di seguito:

    docker build -t iss .
    
  2. Per eseguire il contenitore appena compilato, eseguire il comando docker run:

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

Contrassegnare ed eseguire il push dell'immagine nel registro

Per consentire ad altri host di riutilizzare la nuova immagine, è necessario contrassegnare e quindi eseguire il push dell'immagine del contenitore nel registro.

  1. Usare tag docker per contrassegnare l'immagine come indicato di seguito:

    docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
    
  2. Usare docker push per eseguire il push dell'immagine nel registro contenitori come indicato di seguito:

    docker push <login-server> iss
    

Aggiornare i contenitori usando un orchestratore

È anche possibile ridistribuire i contenitori Windows usando un orchestratore, ad esempio Azure Kubernetes Service e AKS su Azure Stack HCI. L'agente di orchestrazione offre una potente automazione per eseguire questa operazione su larga scala. Per informazioni dettagliate, vedere Esercitazione: Aggiornare un'applicazione nel servizio Azure Kubernetes o Esercitazione: Aggiornare un'applicazione nel servizio Azure Kubernetes in Azure Stack HCI.