Zona horaria virtualizada
Se aplica a: Windows Server 2025, Windows Server 2022, Windows Server 2019,
Los contenedores de Windows admiten la capacidad de mantener una configuración de zona horaria virtualizada independiente del host. Todas las configuraciones usadas tradicionalmente para la zona horaria del host se han virtualizado y se crean instancias de cada contenedor. Con esta característica, los contenedores de Windows ofrecen los siguientes comportamientos:
- Al iniciar el contenedor, la zona horaria del host se hereda y permanece dentro del contenedor. Si la zona horaria del host cambia mientras se ejecuta el contenedor, la zona horaria almacenada en el contenedor no cambia. Para volver a heredar la zona horaria del host, se debe reiniciar el contenedor.
- El contenedor mantiene la configuración de zona horaria del host que se observa al iniciar el contenedor solo hasta que el usuario configura explícitamente la zona horaria desde dentro del contenedor. Una vez establecida la zona horaria desde dentro del contenedor, la configuración se virtualiza y el contenedor ya no hace referencia al host.
- Si configura la zona horaria del contenedor y, posteriormente, guarda el estado del contenedor, la configuración de zona horaria persiste en los reinicios.
Todas las API de modo kernel y modo de usuario relacionadas con la configuración de la zona horaria del sistema ahora son compatibles con contenedores. Cuando un subproceso que se ejecuta en el contexto de un contenedor llama a una API del sistema para consultar la hora local, recupera la configuración de zona horaria del contenedor en lugar de la del host. Los datos de zona horaria escritos desde dentro de un contenedor ahora se conservan en el almacenamiento específico del contenedor y el contenedor en cuestión ya no hereda los datos de zona horaria actuales del host durante el inicio. Esto significa que una vez establecida la zona horaria, el contenedor sigue usando la zona horaria configurada entre reinicios. Los contenedores construidos sobre una imagen heredan la configuración de zona horaria mientras esté explícitamente establecida en alguna de las capas.
En la tabla siguiente se muestra la compilación admitida para cada SKU:
SKU | Versión admitida |
---|---|
Windows Server 2019 | 10.0.17763.1935 o superior |
20H2 SAC | 10.0.19042.985 o posterior |
Windows Server 2022 | Todas las versiones |
Windows Server 2025 | Todas las versiones |
¿Cómo se configura la zona horaria del contenedor?
En primer lugar, necesita tanto las versiones de host como las de invitado que contienen esta característica, lo que significa que ambas se deben ejecutar en una revisión de mantenimiento de 2105B o superior. La ejecución de versiones anteriores simplemente revierte el comportamiento del contenedor a reflejar la zona horaria del host, y la configuración no afecta ni al host ni al sistema invitado.
Nota
La configuración de la zona horaria requiere privilegios administrativos, específicamente SeTimeZonePrivilege. La cuenta ContainerAdministrator tiene este privilegio. Por lo tanto, la recomendación es ejecutar con los privilegios mínimos necesarios para la carga de trabajo y reservar la cuenta ContainerAdministrator para las tareas administrativas, como establecer la zona horaria.
La manera recomendada de configurar la zona horaria del contenedor es a través de la utilidad TZUtil.exe o el cmdlet Set-TimeZone de PowerShell. Estas utilidades se mantienen bien y ofrecen comodidad para establecer fácilmente la zona horaria. Cualquier otro método debe interactuar directamente con las API del sistema. Las versiones de imagen base con TZUtil.exe o PowerShell incluido funcionarán de forma inmediata. La imagen base de Nanoserver
es una excepción, ya que esta imagen no admite TZUtil.exe ni PowerShell de forma predeterminada, por lo que requiere una utilidad personalizada para interactuar con las API del sistema. En cualquier caso, las aplicaciones recién escritas NO deben depender de la zona horaria del sistema operativo a menos que sea absolutamente necesario y, en su lugar, deben tenerlo en cuenta en los datos y la lógica de la aplicación.
Ejemplo de uso de Windows Server 2019
Con la imagen base de Windows Server 2019 Server Core, a continuación se muestra un ejemplo para establecer una zona horaria virtualizada.
Después de iniciar el contenedor, establezca la zona horaria en la zona horaria del host (en este ejemplo, es hora estándar del Pacífico), como se muestra a continuación:
PS C:\> tzutil /g Pacific Standard Time
Establezca la zona horaria del host de en Hora estándar de Asia Central (UTC+6:00) y observe que la hora estándar del Pacífico sigue apareciendo en el contenedor:
PS C:\> Get-TimeZone
Id : Pacific Standard Time DisplayName : (UTC-08:00) Pacific Time (US & Canada) StandardName : Pacific Standard Time DaylightName : Pacific Daylight Time BaseUtcOffset : -08:00:00 SupportsDaylightSavingTime : True
Tenga en cuenta que, al iniciar el contenedor por primera vez, la configuración se establece en lo que se configuró al crear la imagen base hasta configurarlo usted mismo. En la mayoría de los casos para las imágenes base de Windows, el valor predeterminado será Hora estándar del Pacífico.
A continuación, establezca la zona horaria del contenedor en "Hora estándar de Samoa":
PS C:\> tzutil /s "Samoa Standard Time" PS C:\> tzutil /g Samoa Standard Time PS C:\> Get-TimeZone
Id : Samoa Standard Time DisplayName : (UTC+13:00) Samoa StandardName : Samoa Standard Time DaylightName : Samoa Daylight Time BaseUtcOffset : 13:00:00 SupportsDaylightSavingTime : True
Ahora la zona horaria del contenedor se ha actualizado a la hora estándar de Samoa, pero el host permanece en la hora estándar de Asia Central. Esta configuración persiste al guardar el estado del contenedor.
Si reinicia el contenedor sin guardar previamente su estado, la zona horaria se establece en la zona horaria del host, como se muestra a continuación:
PS C:\>tzutil /g Central Asia Standard Time PS C:\> Get-TimeZone
Id : Central Asia Standard Time DisplayName : (UTC+06:00) Astana StandardName : Central Asia Standard Time DaylightName : Central Asia Daylight Time BaseUtcOffset : 06:00:00 SupportsDaylightSavingTime : False