Compartilhar via


Atualizar contêineres para uma nova versão do sistema operacional Windows

Aplica-se a: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016

Este tópico descreve como atualizar contêineres do Windows para uma nova versão do sistema operacional Windows ou Windows Server. Há duas etapas para atualizar contêineres:

  1. Atualize o host de contêiner para a nova versão do sistema operacional.
  2. Crie novas instâncias de contêiner usando a nova versão do sistema operacional.

Nota

Se você precisar atualizar (ou aplicar patch) a imagem atual do contêiner do SO Windows de base, confira atualizar seus contêineres para efetuar pull da imagem de patch mais recente para seus contêineres.

Atualizar o host de contêiner

Para atualizar o host de contêiner para uma versão mais recente do Windows ou do Windows Server, você pode executar uma atualização in-place ou uma instalação limpa. Como o host do contêiner e os contêineres do Windows compartilham um único kernel, você deve verificar se a versão do sistema operacional de imagem base do contêiner corresponde à do host. Porém, você ainda pode ter uma versão mais recente do host de contêiner com uma imagem base mais antiga com o isolamento do Hyper-V. No Windows Server 2022, você pode implementar esse cenário com isolamento de processo (em versão prévia).

Criar novas instâncias de contêiner usando a nova versão do sistema operacional

Para criar as novas instâncias de contêiner, você precisa:

  • Efetuar pull da imagem base do contêiner
  • Editar o Dockerfile para apontar para a nova imagem base
  • Compilar e executar a nova imagem do aplicativo
  • Taguear e enviar a imagem para o repositório

Efetuar pull da imagem base do contêiner

Depois de fazer o pull da nova versão do sistema operacional Windows no servidor do contêiner, siga as etapas abaixo para atualizar a imagem base:

  1. Selecione a imagem base do contêiner para a qual deseja atualizar.

  2. Abra uma sessão do PowerShell como administrador e, dependendo da versão do sistema operacional escolhida, execute o comando docker pull para efetuar pull de uma imagem:

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

    Este exemplo obtém a imagem base do núcleo do servidor versão 20H2.

  3. Quando a imagem terminar de baixar, você pode verificar se a nova imagem foi extraída executando o comando imagens do Docker para retornar uma lista de imagens extraídas:

    docker images
    

Editar o Dockerfile para apontar para a nova imagem base

Em seguida, você deve criar e iniciar novas instâncias de contêiner usando a nova imagem base que você puxou. Para automatizar esse processo, edite o Dockerfile para redirecioná-lo para a nova imagem.

Nota

Se você quiser atualizar a imagem para qualquer contêiner em execução no momento, precisará interromper os contêineres usando docker stop e, em seguida, executar docker rm para remover os contêineres.

Abra o Dockerfile em um editor de texto e faça as atualizações. No exemplo a seguir, o Dockerfile é atualizado para o Server Core 20H2 com o aplicativo 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"]

Compilar e executar a nova imagem do aplicativo

Depois que o Dockerfile for atualizado, você precisará criar e executar a imagem do aplicativo.

  1. Use docker build para criar sua imagem, conforme mostrado abaixo:

    docker build -t iss .
    
  2. Para executar o contêiner recém-criado, execute o comando de execução do docker:

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

Marcar e efetuar push da imagem para o repositório

Para permitir que outros hosts reutilizem a nova imagem, você deve marcar e depois enviar a imagem de contêiner para o repositório.

  1. Use docker tag para marcar a imagem da seguinte maneira:

    docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
    
  2. Use docker push para efetuar push da imagem para o registro de contêiner da seguinte maneira:

    docker push <login-server> iss
    

Atualizar contêineres usando um orquestrador

Você também pode reimplantar seus contêineres do Windows usando um orquestrador, como o Serviço de Kubernetes do Azure e o AKS no Azure Stack HCI. O orquestrador fornece automação avançada para fazer isso em escala. Para obter detalhes, consulte Tutorial: Atualizar um aplicativo no Serviço de Kubernetes do Azure ou Tutorial: Atualizar um aplicativo no Serviço de Kubernetes do Azure no Azure Stack HCI.