Última atualização 10 de março de 2020 10:00 PST
Sintomas
Você poderá encontrar problemas ao usar contêineres do Windows Server se a imagem do host ou do contêiner tiver a atualização de segurança de 11 de fevereiro de 2020, a menos que as imagens de host de contêiner do Windows e do Windows Server sejam compatíveis com a atualização de segurança de 11 de fevereiro de 2020.
Os sintomas ao executar ou criar um contêiner podem incluir:
-
Ao executar o comando "docker run" ou "docker build" você pode não receber saída e ele pode não responder.
-
O contêiner do Windows Server no Kubernetes não atinge o estado de "execução".
-
Você recebe o erro “docker: Resposta de erro do daemon: o contêiner <id> encontrou um erro durante a Inicialização: falha em uma chamada de sistema do Windows: A operação de espera atingiu o tempo limite. (0x102).”
-
Seu aplicativo de 32 bits ou processos que estão sendo executados no contêiner podem ter uma falha silenciosa.
Causa
Esse problema foi o resultado de uma alteração de segurança que exigiu uma alteração de interface entre o modo de usuário e o modo kernel. Como os contêineres isolados do processo compartilham o modo kernel com o host e as imagens de contêiner, o componente do modo de usuário sem a atualização era incompatível e inseguro com a nova interface de kernel protegida.
Resolução e solução alternativa
Adicionamos novas diretrizes de atualização no site Windows Container Docs nas seções Compatibilidade da versão de contêiner do Windows e Atualizar contêineres do Windows Server. Isso também inclui detalhes sobre compatibilidade e matriz de atualização. Para obter informações sobre os problemas específicos listados neste artigo, consulte a resolução e a mitigação abaixo.
Resolução para problemas de "não execução" e "aplicativos de 32 bits com falha silenciosa" (sintomas 1, 2, 3 e 4):
Em 18 de fevereiro de 2020, foram lançadas imagens atualizadas de contêineres para resolver problemas referentes aos sintomas (1, 2, 3 e 4) neste artigo. Se você estiver encontrando esses problemas, recomendamos que atualize seu host de contêineres para a versão de atualização de segurança de 11 de fevereiro de 2020 e as imagens de contêiner lançadas em 18 de fevereiro de 2020. Observação A versão de 18 de fevereiro de 2020 é apenas para imagens de contêineres. As atualizações de segurança de 11 de fevereiro de 2020 ainda são as mais recentes para o host de contêineres.
Para resolver o problema em seu ambiente, execute novamente o comando pull para atualizar as imagens do sistema operacional base do Windows Server ou a imagem de contêiner aplicável, como IIS ou .NET, e execute novamente o pipeline de automação para recriar os contêineres usando as imagens de contêiner com a imagem de contêiner de 18 de fevereiro de 2020.
Importante Se você alterou a automação ou a marcas pull como uma solução para os problemas deste artigo, é necessário reverter as alterações para as marcas pull anteriores. Você não deve mais precisar usar uma versão específica.
Mitigação do problema "Aplicativos de 32 bits com falha silenciosa" (sintoma 4):
Recomendamos expressamente que você atualize o host de contêineres para a atualização de segurança de 11 de fevereiro de 2020, conforme descrito acima. Se não conseguir atualizar o host de contêiner para as atualizações de segurança de 11 de fevereiro de 2020, você precisará combinar a versão de compilação e revisão da imagem do contêiner com a versão de compilação e revisão do sistema operacional host de contêiner. Para obter instruções sobre como verificar a versão de seu host de contêiner, consulte este artigo. Depois que tiver a versão do host do contêiner, você poderá extrair a versão da imagem do contêiner usando o comando a seguir (você precisará ajustar a imagem e a versão do sistema operacional base do Windows Server, conforme aplicável ao ambiente). Por exemplo, se você estiver usando o contêiner do Windows Server Core:
docker pull mcr.microsoft.com/windows/servercore:<version your container host, such as 10.0.17763.1040>
Depois que as versões de imagem do host e do contêiner coincidirem, você deverá ser capaz de retomar os comandos de contêiner, como executar ou compilar.
Observação Recomendamos alterar sua automação ou marcas de pull apenas se estiver encontrando aplicativos com falha silenciosa.
Referências
A lista abaixo mostra as versões do Windows Server para as quais damos suporte a imagens de contêiner, juntamente com os números de versão para as atualizações de segurança lançadas em 14 de janeiro de 2020 e 11 de fevereiro de 2020 e o lançamento único da imagem do contêiner em 18 de fevereiro de 2020. As imagens de contêiner lançadas em 18 de fevereiro de 2020 listadas abaixo serão obtidas automaticamente se você não especificar a versão em suas marcas flutuantes.
Versão do Windows Server (marca flutuante) |
Versão de atualização para lançamento de 14 de janeiro de 2020 |
Versão de atualização para 11 de fevereiro de 2020 |
Versão de atualização para 18 de fevereiro de 2020 |
Windows Server 2016 (ltsc2016) |
10.0.14393.3443 |
10.0.14393.3504 |
10.0.14393.3506 |
Windows Server, versão 1803 (1803) |
10.0.17134.1246 |
10.0.17134.1304 |
10.0.17134.1305 |
Windows Server 2019 (ltsc2019) Windows Server, versão 1809 (1809) |
10.0.17763.973 |
10.0.17763.1039 |
10.0.17763.1040 |
Windows Server, versão 1903 (1903) |
10.0.18362.592 |
10.0.18362.657 |
10.0.18362.658 |
Windows Server, versão 1909 (1909) |
10.0.18363.592 |
10.0.18363.657 |
10.0.18363.658 |
Se você está usando imagens de Máquina Virtual do Azure Marketplace com contêineres, as imagens de fevereiro de 2020 já estão disponíveis. Você não deve encontrar os problemas ou sintomas acima ao usar essas imagens. Para obter mais informações, consulte KB4540981.
Para obter uma lista completa da imagem do contêiner do Windows, consulte a página do Docker Hub aqui.
Para obter informações mais detalhadas sobre os contêineres do Windows Server, consulte https://aka.ms/containers.