Virtualiserad tidszon
Gäller för: Windows Server 2025, Windows Server 2022, Windows Server 2019,
Windows-containrar har stöd för möjligheten att underhålla en virtualiserad tidszonskonfiguration separat från värden. Alla konfigurationer som traditionellt används för värdtidszonen har virtualiserats och instanseras för varje container. Med den här funktionen erbjuder Windows-containrar följande beteenden:
- När du startar containern ärvs värdens tidszon och förblir densamma i containern. Om tidszonen för värden ändras medan containern körs ändras inte tidszonen som lagras i containern. Om du vill återfå värdens tidszon måste containern startas om.
- Containern behåller värdens tidszonskonfiguration som observeras när containern startas endast tills användaren uttryckligen konfigurerar tidszonen inifrån containern. När du har angett tidszonen inifrån containern virtualiseras konfigurationen och containern refererar inte längre till värddatorn.
- Om du konfigurerar containerns tidszon och därefter sparar containerns tillstånd sparas tidszonskonfigurationen mellan omstarter.
Alla API:er för kernelläge och användarläge som är relaterade till konfigurationen av systemets tidszon är nu containermedvetna. När en tråd som körs i kontexten för en container anropar ett system-API för att fråga den lokala tiden hämtar den containerns tidszonskonfiguration i stället för värdens. Tidszonsinformation som skrivs inuti en container bevaras nu i containerspecifik lagring och containern i fråga ärver inte längre värdens aktuella tidszonsinformation vid uppstart. Det innebär att när du har angett tidszonen fortsätter containern att använda den konfigurerade tidszonen över omstarter. Alla containrar som bygger på en avbildning ärver tidszonskonfigurationen så länge den uttryckligen har angetts i ett av lagren.
Följande tabell visar den version som stöds för varje SKU:
SKU | Bygge som stöds |
---|---|
Windows Server 2019 | 10.0.17763.1935 eller senare |
20H2 SAC | 10.0.19042.985 eller senare |
Windows Server 2022 | Alla versioner |
Windows Server 2025 | Alla versioner |
Hur konfigurerar jag containerns tidszon?
Först behöver du både värd- och gästversioner som innehåller den här funktionen, vilket betyder att de körs på en servicekorrigering 2105B eller senare. Att köra tidigare versioner får helt enkelt containerns beteende att återgå till att spegla värdens tidszon, utan att konfigurationen påverkar vare sig värd eller gäst.
Not
För att konfigurera tidszonen krävs administratörsbehörighet, särskilt SeTimeZonePrivilege. ContainerAdministrator-kontot har den här behörigheten. Därför rekommenderar vi att du kör med minsta möjliga behörighet för din arbetsbelastning och reserverar ContainerAdministrator-kontot för administrativa uppgifter, till exempel att ange tidszonen.
Det rekommenderade sättet att konfigurera tidszonen för containrar är via TZUtil.exe-verktyget eller PowerShells Set-TimeZone cmdlet. Dessa verktyg är väl underhållna och erbjuder bekvämlighet för att enkelt ange tidszonen. Alla andra metoder måste interagera direkt med system-API:erna. Versioner av basavbildningar som inkluderar TZUtil.exe eller PowerShell fungerar direkt. Den Nanoserver
basavbildningen är ett undantag eftersom den här avbildningen inte stöder TZUtil.exe eller PowerShell som standard, så det krävs ett anpassat verktyg för att interagera med system-API:erna. I vilket fall som helst bör nyligen skrivna program INTE vara beroende av operativsystemets tidszon om det inte är absolut nödvändigt och bör i stället ta hänsyn till det inom programdata och logik.
Exempel med Windows Server 2019
Med hjälp av Windows Server 2019 Server Core basavbildning är följande ett exempel för att ange en virtualiserad tidszon.
När du har startat containern, ställ in tidszonen så att den matchar värdens tidszon (i det här exemplet är det Stilla havstid) som visas nedan:
PS C:\> tzutil /g Pacific Standard Time
Ange tidszonen för din -värd till centralasiatisk normaltid (UTC+6:00) och observera att Stillahavsstandardtid fortfarande visas i containern.
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
Observera att när du startar containern för första gången är konfigurationen inställd på det som konfigurerades när du skapade basavbildningen tills du konfigurerar den själv. I de flesta fall för Windows-basavbildningar är standardvärdet Pacific Standard Time.
Ställ sedan in tidszonen för containern på "Samoa Standard Time":
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
Nu har containerns tidszon uppdaterats till Samoa Standard Time, men värden finns kvar på Central Asia Standard-tid. Den här konfigurationen bevaras när containerns tillstånd sparas.
Om du startar om containern utan att tidigare spara dess tillstånd är tidszonen inställd på värdens tidszon enligt nedan:
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