Mettre à niveau des conteneurs vers une nouvelle version du système d’exploitation Windows

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016

Cette rubrique explique comment mettre à niveau des conteneurs Windows vers une nouvelle version du système d’exploitation Windows ou Windows Server. La mise à niveau des conteneurs comporte deux étapes :

  1. Mettre à niveau l’hôte de conteneur vers la nouvelle version du système d’exploitation.
  2. Créer de nouvelles instances de conteneur à l’aide de la nouvelle version du système d’exploitation.

Notes

Si vous devez simplement mettre à jour (ou corriger) l’image conteneur de votre système d’exploitation de base Windows, consultez Mettre à jour vos conteneurs afin de tirer (pull) la dernière image de correctif pour vos conteneurs.

Mettre à niveau l’hôte de conteneur

Pour mettre à niveau l’hôte de conteneur vers une version de Windows ou Windows Server plus récente, vous pouvez effectuer une mise à niveau sur place ou une nouvelle installation. Étant donné que l’hôte de conteneur et les conteneurs Windows partagent un même noyau, vous devez vérifier que la version du système d’exploitation de l’image de base du conteneur correspond bien à celle de l’hôte. Toutefois, vous pouvez avoir à la fois une version plus récente de l’hôte de conteneur et une ancienne image de base grâce à l’isolation Hyper-V. Dans Windows Server 2022, vous pouvez implémenter ce scénario avec l’isolation des processus (en préversion).

Créer des instances de conteneur à l’aide de la nouvelle version du système d’exploitation

Pour créer des instances du nouveau conteneur, vous devez :

  • Tirer (pull) l’image de base du conteneur
  • Modifier le fichier Dockerfile pour qu’il pointe vers la nouvelle image de base
  • Générer et exécuter la nouvelle image d’application
  • Étiqueter et envoyer (push) l’image vers votre registre

Tirer (pull) l’image de base du conteneur

Après avoir tiré (pull) la nouvelle version du système d’exploitation Windows présente sur l’hôte de conteneur, suivez les étapes ci-dessous pour mettre à niveau l’image de base :

  1. Sélectionnez l’image de base du conteneur vers laquelle vous souhaitez effectuer la mise à niveau.

  2. Ouvrez une session PowerShell en tant qu’administrateur et, selon la version du système d’exploitation que vous avez choisie, exécutez la commande docker pull pour tirer (pull) une image :

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

    Cet exemple tire (pull) l’image de base Server Core version 20H2.

  3. Une fois le téléchargement de l’image terminé, vous pouvez vérifier que la nouvelle image a été tirée en exécutant la commande docker images pour retourner la liste des images tirées :

    docker images
    

Modifier le fichier Dockerfile pour qu’il pointe vers la nouvelle image de base

Ensuite, vous devez créer et démarrer de nouvelles instances de conteneur à l’aide de la nouvelle image de base que vous avez tirée. Pour automatiser ce processus, modifiez le fichier Dockerfile afin de le rediriger vers la nouvelle image.

Notes

Si vous souhaitez mettre à niveau l’image d’un conteneur en cours d’exécution, vous devrez arrêter les conteneurs à l’aide de docker stop, puis exécuter docker rm pour supprimer les conteneurs.

Ouvrez le fichier Dockerfile dans un éditeur de texte et effectuez les mises à jour. Dans l’exemple suivant, le fichier Dockerfile est mis à jour vers Server Core 20H2 avec l’application 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"]

Générer et exécuter la nouvelle image d’application

Une fois le fichier Dockerfile mis à jour, vous devez générer et exécuter l’image de l’application.

  1. Utilisez docker build pour générer votre image comme indiqué ci-dessous :

    docker build -t iss .
    
  2. Pour exécuter le nouveau conteneur généré, exécutez la commande docker run :

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

Étiqueter et envoyer (push) l’image vers votre registre

Pour permettre à d’autres hôtes de réutiliser la nouvelle image, vous devez étiqueter, puis envoyer (push) l’image conteneur à votre registre.

  1. Utilisez docker tag pour étiqueter l’image de la façon suivante :

    docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
    
  2. Utilisez docker push pour envoyer (push) l’image vers le registre de conteneurs de la façon suivante :

    docker push <login-server> iss
    

Mettre à niveau des conteneurs à l’aide d’un orchestrateur

Vous pouvez également redéployer vos conteneurs Windows à l’aide d’un orchestrateur, comme Azure Kubernetes Service ou AKS sur Azure Stack HCI. L’orchestrateur offre une automatisation puissante pour le faire à grande échelle. Pour plus d’informations, consultez Tutoriel : Mettre à jour une application dans Azure Kubernetes Service (AKS) ou Tutoriel : Mettre à jour une application dans Azure Kubernetes Service sur Azure Stack HCI.