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:
- Aggiornare l'host contenitore alla nuova versione del sistema operativo.
- 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:
Selezionare l'immagine di base del contenitore a cui si vuole eseguire l'aggiornamento.
** 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.
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.
Usare docker build per compilare l'immagine come illustrato di seguito:
docker build -t iss .
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.
Usare tag docker per contrassegnare l'immagine come indicato di seguito:
docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
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.