Actualización de contenedores de Windows Server

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016

Como parte del mantenimiento de Windows Server cada mes, publicamos periódicamente imágenes base de contenedor del SO Windows Server actualizadas. Con estas actualizaciones, puedes automatizar la creación de imágenes de contenedor actualizadas o actualizarlas manualmente extrayendo de la versión más reciente. Los contenedores de Windows Server no tienen una pila de servicio, como Windows Server. No puedes obtener actualizaciones en un contenedor como lo haces con Windows Server. Por lo tanto, cada mes volvemos a generar las imágenes base de contenedor del SO Windows Server con las actualizaciones, y publicamos las imágenes de contenedor actualizadas.

Otras imágenes de contenedor, como .NET o IIS, se volverán a generar en función de las imágenes base de contenedor del SO actualizadas y se publicarán mensualmente.

Cómo obtener actualizaciones de contenedores de Windows Server

Actualizamos las imágenes base de contenedor del SO Windows Server en consonancia con la cadencia de entregas de Windows. Las imágenes de contenedor actualizadas se publican el segundo martes de cada mes, a los que a veces llamamos la publicación "B", con un número de prefijo según el mes de publicación. Por ejemplo, llamamos a la actualización de febrero "2B" y a la actualización de marzo "3B". Este evento de actualización mensual es la única versión normal que incluye nuevas correcciones de seguridad.

El servidor que hospeda estos contenedores, denominado host de contenedor o simplemente "host", se puede atender durante otros eventos de actualización distintos de las publicaciones "B". Para más información sobre el ritmo de mantenimiento de actualización de Windows, consulta nuestra entrada de blog sobre la cadencia de entrega de actualizaciones de Windows.

Las nuevas imágenes base de contenedor del SO Windows Server se publican poco después de las 10:00 a. m. (PST) del segundo martes de cada mes en Microsoft Container Registry (MCR), y las etiquetas destacadas se dirigen a la publicación B más reciente. Entre algunos ejemplos se incluyen:

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

Si estás más familiarizado con Docker Hub que con MCR, esta entrada de blog te proporcionará una explicación más detallada.

En cada versión, la imagen de contenedor correspondiente también se publica con dos etiquetas adicionales para el número de revisión y el número de artículo de KB dirigidas a revisiones de imágenes de contenedor específicas. Por ejemplo:

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

En estos ejemplos se extrae la imagen de contenedor de Windows Server 2019 Server Core con la actualización de la versión de seguridad del 18 de febrero.

Para obtener una lista completa de las imágenes base de contenedor del SO Windows Server, las versiones y sus etiquetas correspondientes, consulta estas imágenes base de contenedor del SO Windows en Docker Hub.

Las imágenes de Windows Server con entrega mensual que publica Microsoft en Azure Marketplace también vienen con imágenes base de contenedor del SO preinstaladas. Encontrarás más información en nuestra página de precios de Azure Marketplace para Windows Server. Normalmente actualizamos estas imágenes unos cinco días laborables después de la publicación "B".

Para obtener una lista completa de las imágenes y versiones de Windows Server, consulta el historial de actualizaciones de publicación de Windows Server en Azure Marketplace.

Compatibilidad de versiones de host y contenedor

Hay dos tipos de modos de aislamiento para los contenedores de Windows: aislamiento de procesos y aislamiento de Hyper-V. El aislamiento de Hyper-V es más flexible en cuanto a la compatibilidad entre versiones de host y contenedor. Para más información, consulta Compatibilidad de versiones y Modos de aislamiento. Esta sección se centrará en los contenedores con aislamiento de procesos, a menos que se indique lo contrario.

Al actualizar el host de contenedor o la imagen del contenedor con las actualizaciones mensuales, siempre y cuando se admitan tanto el host como la imagen de contenedor (Windows Server versión 1809 o posterior), no es necesario que las revisiones del host y de la imagen del contenedor coincidan para que el contenedor se inicie y ejecute con normalidad.

No obstante, podrías tener problemas al usar contenedores de Windows Server con la versión de actualización de seguridad del 11 de febrero de 2020 (también denominada "2B") o versiones posteriores de actualización de seguridad mensuales. Para más información, consulta este artículo de Soporte técnico de Microsoft. Estos problemas provienen de un cambio de seguridad que exigía que una interfaz entre el modo de usuario y el modo kernel cambiara para garantizar la seguridad de las aplicaciones. Estos problemas solo se producen en los contenedores con aislamiento de procesos, ya que estos contenedores comparten el modo de kernel con el host de contenedor. Esto significa que las imágenes de contenedor sin el componente de modo de usuario actualizado no eran seguras y no eran compatibles con la nueva interfaz de kernel protegida.

El 18 de febrero de 2020 publicamos una corrección. Esta nueva versión ha establecido una "nueva línea base". Esta nueva línea base sigue estas reglas:

  • Toda combinación de hosts y contenedores anteriores a 2B funcionará.
  • Toda combinación de hosts y contenedores donde ambos sean posteriores a 2B funcionará.
  • Ninguna combinación de hosts y contenedores en distintos lados de la nueva base de referencia funcionará. Por ejemplo, un host 3B y un contenedor 1B no funcionarán.

Usemos la publicación de la actualización de seguridad mensual de marzo de 2020 como ejemplo para mostrar cómo funcionan estas nuevas reglas de compatibilidad. En la tabla siguiente, la publicación de la actualización de seguridad de marzo de 2020 se denomina "3B", la actualización de febrero de 2020 es "2B", y la actualización de enero de 2020 es "1B".

Host Contenedor Compatibilidad
3B 3B
3B 2B
3B 1B o anterior No
2B 3B
2B 2B
2B 1B o anterior No
1B o anterior 3B No
1B o anterior 2B No
1B o anterior 1B o anterior

Como referencia, en la tabla siguiente se enumeran los números de versión de las imágenes base de contenedor del SO con las publicaciones 1B, 2B y 3B de las actualizaciones de seguridad mensuales en diferentes versiones principales del SO de Windows Server 2016 a la publicación más reciente de Windows Server, versión 1909.

Versión de Windows Server (etiqueta flotante) Versión de actualización para la publicación del 14/01/20 (1B) Versión de actualización para la publicación del 18/01/20 (2B) Versión de actualización para la publicación del 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, versión 1803 (1803) 10.0.17134.1246 (KB4534293) 10.0.17134.1305 (KB4546851) Esta versión ha alcanzado el final del soporte técnico. Para más información, consulta Ciclos de vida de mantenimiento de imágenes base.
Windows Server, versión 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, versión 1903 (1903) 10.0.18362.592 (KB4528760) 10.0.18362.658 (KB4546853) 10.0.18362.719 (KB4540673)
Windows Server, versión 1909 (1909) 10.0.18363.592 (KB4528760) 10.0.18363.658 (KB4546853) 10.0.18363.719 (KB4540673)

Solución de errores de coincidencia entre el host y la imagen de contenedor

Antes de empezar, asegúrate de familiarizarte con la información de Compatibilidad de versiones. Esta información te ayudará a averiguar si el problema se debe a que las revisiones no coinciden. Si estableces que la causa se debe a la falta coincidencia entre las revisiones, puedes seguir las instrucciones de esta sección para solucionar el problema.

Consulta de la versión del host de contenedor

Si puedes acceder al host de contenedor, puedes ejecutar el comando ver para obtener su versión del SO. Por ejemplo, si ejecutas ver en un sistema que ejecuta Windows Server 2019 con la publicación más reciente de la actualización de seguridad de febrero de 2020, verás lo siguiente:

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

C:\>ver

Microsoft Windows [Version 10.0.17763.1039]

Nota

El número de revisión de este ejemplo se muestra como 1039, no 1040, porque la publicación de la actualización de seguridad de febrero de 2020 no tenía una versión 2B extraordinaria para Windows Server. Solo había una versión 2B extraordinaria para los contenedores, que tenía un número de revisión de 1040.

Si no tienes acceso directo al host de contenedor, consulta con el administrador de TI. Si trabajas en la nube, consulta el sitio web del proveedor de la nube para averiguar en qué versión del SO del host de contenedor se ejecuta. Por ejemplo, si usas Azure Kubernetes Service (AKS), puedes encontrar la versión del SO del host en las notas de la versión de AKS.

Consulta de la versión de la imagen del contenedor

Sigue estas instrucciones para averiguar qué versión ejecuta el contenedor:

  1. En PowerShell, ejecute el siguiente cmdlet:

    docker images
    

    La salida debe parecerse a lo siguiente:

    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. Ejecute el comando docker inspect para el identificador de imagen de la imagen de contenedor que no funciona. Esto le mostrará la versión de destino de la imagen de contenedor.

    Por ejemplo, supongamos que ejecutamos run docker inspect para una imagen de contenedor ltsc 2019:

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

    En este ejemplo, la versión del SO del contenedor se muestra como 10.0.17763.1039.

    Si ya estás ejecutando un contenedor, también puedes ejecutar el comando ver dentro del contenedor para obtener la versión. Por ejemplo, al ejecutar ver en una imagen de contenedor de Server Core de Windows Server 2019 con la publicación más reciente de la actualización de seguridad de febrero de 2020, se mostrará lo siguiente:

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