Compartir a través de


Actualización de contenedores a una nueva versión del sistema operativo de Windows

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

En este tema se describe cómo actualizar los contenedores de Windows a una nueva versión del sistema operativo de Windows o Windows Server. Hay dos pasos para actualizar contenedores:

  1. Actualice el host del contenedor a la nueva versión del sistema operativo.
  2. Cree nuevas instancias de contenedor con la nueva versión del sistema operativo.

Nota:

Si solo necesita actualizar (o aplicar parches) a la imagen del contenedor del sistema operativo base de Windows actual, consulte Actualización de los contenedores para extraer la imagen del parche más reciente de los contenedores.

Actualización del host del contenedor

Para actualizar el host del contenedor a una versión de Windows o Windows Server más reciente, puede realizar una actualización local o una instalación limpia. Puesto que el host del contenedor y los contenedores de Windows comparten un único kernel, debe asegurarse de que la versión del sistema operativo de la imagen base del contenedor coincide con la del host. Sin embargo, todavía puede tener una versión más reciente del host del contenedor con una imagen base anterior con aislamiento de Hyper-V. En Windows Server 2022, puede implementar este escenario con aislamiento de procesos (en versión preliminar).

Creación de nuevas instancias de contenedor con la nueva versión del sistema operativo

Para crear las nuevas instancias de contenedor, debe:

  • Extraer la imagen base del contenedor
  • Editar el Dockerfile para que apunte a la nueva imagen base
  • Compilar y ejecutar la nueva imagen de la aplicación
  • Etiquetar e insertar la imagen en el registro

Extraer la imagen base del contenedor

Después de haber extraído la nueva versión del sistema operativo de Windows en el host del contenedor, siga los pasos que se indican a continuación para actualizar la imagen base:

  1. Seleccione la imagen base del contenedor a la que desea actualizar.

  2. Abra una sesión de PowerShell como administrador y, en función de la versión del sistema operativo que elija, ejecute el comando docker pull para extraer una imagen:

    PS C:\> docker pull mcr.microsoft.com/windows/servercore:ltsc2022
    

    En este ejemplo se extrae la imagen base de la versión 20H2 de Server Core.

  3. Una vez finalizada la descarga de la imagen, puede comprobar que la nueva imagen se ha extraído mediante la ejecución del comando docker images para devolver una lista de imágenes que se han extraído:

    docker images
    

Editar el Dockerfile para que apunte a la nueva imagen base

A continuación, quiere crear e iniciar nuevas instancias de contenedor con la nueva imagen base que ha extraído. Para automatizar este proceso, edite el Dockerfile para redirigirlo a la nueva imagen.

Nota:

Si desea actualizar la imagen de cualquier contenedor que se esté ejecutando actualmente, deberá detener los contenedores mediante docker stop y, a continuación, ejecutar docker rm para quitar los contenedores.

Abra el Dockerfile en un editor de texto y realice las actualizaciones. En el ejemplo siguiente, el Dockerfile se actualiza a Server Core 20H2 con la aplicación 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 y ejecutar la nueva imagen de la aplicación

Una vez actualizado el Dockerfile, debe compilar y ejecutar la imagen de la aplicación.

  1. Use docker build para compilar la imagen como se muestra a continuación:

    docker build -t iss .
    
  2. Para ejecutar el contenedor recién creado, ejecute el comando docker run:

    docker run -d -p 8080:80 --name iss-app iss
    

Etiquetar e insertar la imagen en el registro

Para permitir que otros hosts reutilicen la nueva imagen, debe etiquetar e insertar la imagen del contenedor en el registro.

  1. Use docker tag para etiquetar la imagen de la siguiente manera:

    docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
    
  2. Use docker push para insertar la imagen en el registro del contenedor como se muestra a continuación:

    docker push <login-server> iss
    

Actualización de contenedores mediante un orquestador

También puede volver a implementar los contenedores de Windows mediante un orquestador, como Azure Kubernetes Service y AKS en Azure Stack HCI. El orquestador proporciona una automatización eficaz para hacerlo a escala. Para más información, consulte Tutorial: Actualización de una aplicación en Azure Kubernetes Service o Tutorial: Actualización de una aplicación en Azure Kubernetes Service en Azure Stack HCI.