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:
- Atualize o host de contêiner para a nova versão do sistema operacional.
- 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:
Selecione a imagem base do contêiner para a qual deseja atualizar.
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.
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.
Use docker build para criar sua imagem, conforme mostrado abaixo:
docker build -t iss .
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.
Use docker tag para marcar a imagem da seguinte maneira:
docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
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.