Actualización de contenedores a una nueva versión del sistema operativo Windows
Se aplica a: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
En este tema se describe cómo actualizar contenedores de Windows a una nueva versión del sistema operativo Windows o Windows Server. Hay dos pasos para actualizar contenedores:
- Actualice el host de contenedor a la nueva versión del sistema operativo.
- Cree nuevas instancias de contenedor mediante la nueva versión del sistema operativo.
Nota
Si solo tiene que actualizar (o revisar) la imagen actual del contenedor del sistema operativo base de Windows, vea Actualización de los contenedores para extraer la imagen de revisión más reciente para los contenedores.
Actualización del host del contenedor
Para actualizar el host de contenedor a una versión más reciente de Windows o Windows Server, puede realizar una actualización local o una instalación limpia. Dado que el host de 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. Pero todavía puede tener una versión más reciente del host de 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 mediante la nueva versión del sistema operativo
Para crear las nuevas instancias de contenedor, necesitará:
- Extracción de la imagen base del contenedor
- Edición del Dockerfile para que apunte a la nueva imagen base
- Compilación y ejecución de la nueva imagen de aplicación
- Etiquete e inserte la imagen en el registro
Extracción de la imagen base del contenedor
Después de haber extraído la nueva versión del sistema operativo Windows en el host de contenedor, siga los pasos siguientes para actualizar la imagen base:
Seleccione la imagen base del contenedor a la que desea actualizar.
Abra una sesión de PowerShell como administrador y, en función de la versión del sistema operativo que eligió, ejecute el comando de extracción de Docker para extraer una imagen:
PS C:\> docker pull mcr.microsoft.com/windows/servercore:ltsc2022
En este ejemplo se extrae la imagen base Server Core versión 20H2.
Una vez finalizada la descarga de la imagen, puede comprobar que se ha extraído la nueva imagen mediante la ejecución del comando docker images para devolver una lista de imágenes extraídas:
docker images
Edición del Dockerfile para que apunte a la nueva imagen base
A continuación, quiere crear e iniciar nuevas instancias de contenedor mediante la nueva imagen base que ha extraído. Para automatizar este proceso, edite el Dockerfile para redirigirlo a la nueva imagen.
Nota
Si quiere 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"]
Compilación y ejecución de la nueva imagen de aplicación
Una vez actualizado el Dockerfile, debe compilar y ejecutar la imagen de la aplicación.
Utiliza el comando docker build para construir tu imagen, como se muestra a continuación:
docker build -t iss .
Para ejecutar el contenedor recién compilado, ejecute el comando docker run:
docker run -d -p 8080:80 --name iss-app iss
Etiquete e inserte la imagen en el registro
Para permitir que otros hosts vuelvan a usar la nueva imagen, debe etiquetar y, a continuación, subir la imagen de contenedor a su registro.
Use etiqueta docker para etiquetar la imagen de la siguiente manera:
docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
Use docker push para insertar la imagen en el registro de contenedores de la siguiente manera:
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.