Atualizar contêineres do Windows Server

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

Como parte do serviço do Windows Server a cada mês, publicamos imagens de contêiner atualizadas do sistema operacional base do Windows Server regularmente. Com essas atualizações, você pode automatizar a criação de imagens de contêiner atualizadas ou atualizá-las manualmente obtendo a versão mais recente. Os contêineres do Windows Server não têm uma pilha de manutenção como o Windows Server. Você não pode obter atualizações em um contêiner como faria com o Windows Server. Portanto, todos os meses recriamos as imagens de contêiner do sistema operacional base do Windows Server com as atualizações e publicamos as imagens de contêiner atualizadas.

Outras imagens de contêiner, como .NET ou IIS, serão recriadas com base nas imagens de contêiner do sistema operacional base atualizadas e publicadas mensalmente.

Como obter atualizações de contêiner do Windows Server

Atualizamos as imagens de contêiner do sistema operacional base do Windows Server em alinhamento com a cadência de serviço do Windows. As imagens de contêiner atualizadas são publicadas na segunda terça-feira de cada mês, às quais nos referimos como versão "B", com um número de prefixo com base no mês de lançamento. Por exemplo, chamamos nossa atualização de fevereiro de “2B” e nossa atualização de março de “3B”. Esse evento de atualização mensal é a única versão regular que inclui novas correções de segurança.

O servidor que hospeda esses contêineres, chamado host do contêiner ou apenas o “host”, pode ser atendido durante eventos de atualização adicionais diferentes das versões “B”. Para saber mais sobre a cadência de manutenção do Windows Update, consulte nossa postagem sobre cadência de manutenção do Windows Update no blog.

As novas imagens de contêiner do sistema operacional base do Windows Server entram em operação logo após as 10:00 PST na segunda terça-feira de cada mês no MCR (Registro de Contêiner da Microsoft) e as marcas em destaque visam a versão B mais recente. Veja a seguir alguns exemplos:

  • ltsc2019 (LTSC): docker pull mcr.microsoft.com/windows/servercore:ltsc2019
  • 1909 (SAC): docker pull mcr.microsoft.com/windows/servercore:1909

Se você estiver mais familiarizado com o Docker Hub do que com o MCR, esta postagem do blog fornecerá uma explicação mais detalhada.

Para cada versão, a respectiva imagem de contêiner também é publicada com duas marcas adicionais para o número de revisão e o número de artigo da Base de dados de conhecimento (KB) para direcionar revisões de imagem de contêiner específicas. Por exemplo:

  • docker pull mcr.microsoft.com/windows/servercore:10.0.17763.1040
  • docker pull mcr.microsoft.com/windows/servercore:1809-KB4546852

Esses exemplos efetuam pull da imagem de contêiner do Windows Server 2019 e do Server Core com a atualização de segurança de 18 de fevereiro.

Para obter uma lista completa das imagens de contêiner do sistema operacional base do Windows Server, das versões e de suas respectivas marcas, consulte estas imagens de contêiner do sistema operacional base do Windows no Docker Hub.

As imagens do Windows Server com serviço mensal lançadas no Azure Marketplace pela Microsoft também vêm com imagens de contêiner do sistema operacional base pré-instalado. Saiba mais em nossa página de preços do Windows Server no Azure Marketplace. Geralmente, atualizamos essas imagens cerca de cinco dias úteis após a versão “B”.

Para obter uma lista completa de imagens e versões do Windows Server, consulte a versão do Windows Server no histórico de atualização do Azure Marketplace.

Compatibilidade da versão do contêiner e do host

Há dois tipos de modos de isolamento para contêineres do Windows: Isolamento de processo e isolamento do Hyper-V. O isolamento do Hyper-V é mais flexível quando se trata da compatibilidade de versão do contêiner e do host. Para saber mais, consulte Compatibilidade de versão e Modos de isolamento. Esta seção se concentrará em contêineres isolados de processo, a menos que indicado de outra forma.

Quando você atualiza o host do contêiner ou a imagem de contêiner com as atualizações mensais, desde que a imagem de host e de contêiner seja suportada (Windows Server versão 1809 ou superior), as revisões de imagem de host e de contêiner não precisam corresponder ao contêiner para iniciar e executar normalmente.

No entanto, você poderá encontrar problemas ao usar contêineres do Windows Server com a versão de atualização de segurança de 11 de fevereiro de 2020 (também chamada de “2B”) ou versões de atualização de segurança mensal posteriores. Consulte este artigo do Suporte da Microsoft para obter mais detalhes. Esses problemas resultaram de uma alteração de segurança que exigia uma alteração na interface entre o modo de usuário e o modo kernel para garantir a segurança de seus aplicativos. Esses problemas ocorrem apenas em contêineres de processo isolado porque eles compartilham o modo kernel com o host do contêiner. Isso significa que as imagens de contêiner sem o componente de modo de usuário atualizado eram desprotegidas e incompatíveis com a nova interface de kernel protegida.

Lançamos uma correção a partir de 18 de fevereiro de 2020. Essa nova versão estabeleceu uma “nova linha de base”. Essa nova linha de base segue estas regras:

  • Qualquer combinação de hosts e contêineres antes de 2B funcionará.
  • Qualquer combinação de hosts e contêineres após 2B funcionará.
  • Qualquer combinação de hosts e contêineres em diferentes lados da nova linha de base não funcionará. Por exemplo, um host 3B e um contêiner 1B não funcionarão.

Vamos usar a versão de atualização de segurança mensal de março de 2020 como um exemplo para mostrar como essas novas regras de compatibilidade funcionam. Na tabela a seguir, a versão de atualização de segurança de março de 2020 é chamada de “3B”, a atualização de fevereiro de 2020 de “2B” e a atualização de janeiro de 2020 de “1B”.

Host Contêiner Compatibilidade
3B 3B Sim
3B 2B Sim
3B 1B ou anterior Não
2B 3B Sim
2B 2B Sim
2B 1B ou anterior Não
1B ou anterior 3B Não
1B ou anterior 2B Não
1B ou anterior 1B ou anterior Sim

Para referência, a tabela a seguir lista os números de versão das imagens de contêiner do sistema operacional base com as versões de atualização de segurança de 1B, 2B e 3B mensais em diferentes versões do sistema operacional do Windows Server 2016 para o Windows Server mais recente, a versão 1909.

Versão do Windows Server (marca flutuante) Versão de atualização para a versão de 14/01/20 (1B) Versão de atualização para a versão de 18/02/20 (2B) Versão de atualização para a versão de 10/03/20 (3B)
Windows Server 2016 (ltsc2016) 10.0.14393.3443 (KB4534271) 10.0.14393.3506 (KB4546850) 10.0.14393.3568 (KB4551573)
Windows Server, versão 1803 (1803) 10.0.17134.1246 (KB4534293) 10.0.17134.1305 (KB4546851) Esta versão atingiu o fim do suporte. Para obter mais informações, consulte Ciclos de vida de manutenção da imagem base.
Windows Server, versão 1809 (1809) 10.0.17763.973 (KB4534273) 10.0.17763.1040 (KB4546852) 10.0.17763.1098 (KB4538461)
Windows Server 2019 (ltsc2019) 10.0.17763.973 (KB4534273) 10.0.17763.1040 (KB4546852) 10.0.17763.1098 (KB4538461)
Windows Server, versão 1903 (1903) 10.0.18362.592 (KB4528760) 10.0.18362.658 (KB4546853) 10.0.18362.719 (KB4540673)
Windows Server, versão 1909 (1909) 10.0.18363.592 (KB4528760) 10.0.18363.658 (KB4546853) 10.0.18363.719 (KB4540673)

Solucionar incompatibilidades de imagem de contêiner e host

Antes de começar, certifique-se de se familiarizar com as informações na Compatibilidade de versão. Essas informações ajudarão você a descobrir se o problema foi causado por patches incompatíveis. Se você estabeleceu a incompatibilidade de patches como a causa, você poderá seguir as instruções nesta seção para solucionar o problema.

Consultar a versão do host do contêiner

Se você puder acessar o host do contêiner, poderá executar o comando ver para obter a versão do sistema operacional. Por exemplo, se você executar ver em um sistema que executa o Windows Server 2019 com a versão mais recente de atualização de segurança de fevereiro de 2020, você verá:

Microsoft Windows [Version 10.0.17763.1039]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\>ver

Microsoft Windows [Version 10.0.17763.1039]

Observação

O número de revisão neste exemplo é exibido como 1039, não 1040, porque a versão de atualização de segurança de fevereiro de 2020 não tinha uma versão 2B fora da banda para o Windows Server. Havia apenas uma versão 2B fora da banda para contêineres, que tinha um número de revisão de 1040.

Se você não tiver acesso direto ao host do contêiner, verifique com seu administrador de TI. Se você estiver executando na nuvem, verifique o site do provedor de nuvem para descobrir qual versão do sistema operacional do host do contêiner está em execução. Por exemplo, se você estiver usando o AKS (Serviço de Kubernetes do Azure), poderá encontrar a versão do sistema operacional do host nas notas de versão do AKS.

Consultar a versão da imagem do contêiner

Siga estas instruções para descobrir qual versão seu contêiner está executando:

  1. Execute o seguinte cmdlet no PowerShell:

    docker images
    

    A saída deve parecer com esta:

    REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
    mcr.microsoft.com/windows/servercore   ltsc2019            b456290f487c        4 weeks ago         4.84GB
    mcr.microsoft.com/windows              1809                58229ca44fa7        4 weeks ago         12GB
    mcr.microsoft.com/windows/nanoserver   1809                f519d4f3a868        4 weeks ago         251M
    
    
  2. Execute o comando docker inspect da ID da imagem do contêiner que não está funcionando. Com isso, você saberá qual é a versão de destino da imagem do contêiner.

    Por exemplo, digamos que executamos run docker inspect para uma imagem de contêiner ltsc 2019:

    docker inspect b456290f487c
    
        "Architecture": "amd64",
    
         "Os": "windows",
    
         "OsVersion": "10.0.17763.1039",
    
         "Size": 4841309825,
    
         "VirtualSize": 4841309825,
    

    Neste exemplo, a versão do sistema operacional do contêiner é mostrada como 10.0.17763.1039.

    Se você já estiver executando um contêiner, também poderá executar o comando ver dentro do próprio contêiner para obter a versão. Por exemplo, a execução de ver em uma imagem de contêiner do Server Core do Windows Server 2019 com a versão mais recente de atualização de segurança de fevereiro de 2020 mostrará isto:

    Microsoft Windows [Version 10.0.17763.1040]
    (c) 2020 Microsoft Corporation. All rights reserved.
    
    C:\>ver
    
    Microsoft Windows [Version 10.0.17763.1040]