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 do 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.
Observação
Se você só precisa atualizar (ou corrigir) sua imagem atual do contêiner do sistema operacional base do Windows, consulte atualizar seus contêineres obter a imagem de patch mais recente para seus contêineres.
Atualizar o host do contêiner
Para atualizar o host de contentor para uma versão mais recente do Windows ou do Windows Server, pode executar uma atualização no local ou uma instalação limpa. Como o host do contêiner e os contêineres do Windows compartilham um único kernel, você deve certificar-se de que a versão do sistema operacional da imagem base do contêiner corresponde à do host. No entanto, você ainda pode ter uma versão mais recente do host de contêiner com uma imagem base mais antiga com Hyper-V isolamento. No Windows Server 2022, você pode implementar esse cenário com isolamento de processo (na visualização).
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:
- Puxe a imagem base do contêiner
- Edite o Dockerfile para apontar para a nova imagem base
- Criar e executar a nova imagem do aplicativo
- Marque e envie a imagem para o seu registro
Puxe a imagem base do contêiner
Depois de ter puxado a nova versão do sistema operacional Windows no host do contêiner, siga as etapas abaixo para atualizar a imagem base:
Selecione a imagem base do contentor para a qual deseja efetuar a atualização.
Abra uma sessão do PowerShell como administrador e, dependendo da versão do sistema operacional escolhida, execute o comando docker pull para extrair uma imagem:
PS C:\> docker pull mcr.microsoft.com/windows/servercore:ltsc2022
Este exemplo extrai a imagem base do Server Core versão 20H2.
Quando o download da imagem terminar, você poderá verificar se a nova imagem foi puxada executando o comando docker images para retornar uma lista de imagens puxadas:
docker images
Edite o Dockerfile para apontar para a nova imagem base
Em seguida, você deseja criar e iniciar novas instâncias de contêiner usando a nova imagem base que você extraiu. Para automatizar esse processo, edite o Dockerfile para redirecioná-lo para a nova imagem.
Observação
Se quiser atualizar a imagem de qualquer contentor que esteja em execução no momento, precisará parar os contentores usando docker stop e, em seguida, executar docker rm para remover os contentores.
Abra o Dockerfile em um editor de texto e faça as atualizações. No exemplo a seguir, o Dockerfile é atualizado para 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"]
Criar 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 construir a sua imagem, conforme mostrado abaixo:
docker build -t iss .
Para executar o contêiner recém-construído, execute o comando docker run:
docker run -d -p 8080:80 --name iss-app iss
Marque e envie a imagem para o seu registro
Para permitir que outros hosts reutilizem a nova imagem, você deve marcar e, em seguida, enviar a imagem do contêiner para o seu registro.
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 enviar a imagem para o registo de contêineres da seguinte maneira:
docker push <login-server> iss
Atualizar contentores usando um orquestrador
Você também pode reimplantar seus contêineres do Windows usando um orquestrador, como o Serviço Kubernetes do Azure e o AKS no Azure Stack HCI. O orquestrador fornece automação poderosa para fazer isso em escala. Para obter detalhes, consulte Tutorial: Atualizar um aplicativo no Serviço Kubernetes do Azure ou Tutorial: Atualizar um aplicativo no Serviço Kubernetes do Azure no Azure Stack HCI.