Sou*_*jee 7 powershell docker windows-container windows-server-2019 windows-server-2022
我正在尝试设置基于 windows nano server 2019 Build 1809 的 WindowsContainer 的时区。
为 linux 容器执行此操作的最简单方法之一是设置 TimeZone 环境变量,如下所示:
docker run -e TZ=Asia/Kolkata ubuntu date
Run Code Online (Sandbox Code Playgroud)
对于 Windows 容器,我们是否有类似的东西。基于一般的 Windows 方法,我尝试使用 PowerShell 之类的(如下所示)在入口点脚本中设置它,但它也给了我一个错误。
Set-TimeZone -Name "India Standard Time"
Set-TimeZone : Access is denied
At line:1 char:1
+ Set-TimeZone -Name "India Standard Time"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : FromStdErr: (:) [Set-TimeZone], Win32Exception
+ FullyQualifiedErrorId : SetTimeZoneFailed,Microsoft.PowerShell.Commands.SetTimeZoneCommand
Run Code Online (Sandbox Code Playgroud)
关于如何为基于 Windows Nanoserver 2019 Build 1809 的 Windows 容器完成此操作有任何想法吗?
编辑:正如Pierre-Luc Champigny指出的那样,据微软称,现在 ltsc 版本和即将推出的版本都支持此功能:https ://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/virtual-time-区
tzutil 抛出缺少权限错误似乎您必须确保容器主机上的时区正确。 这没有多大意义,AFAIK,关于容器的整个事情就是将它作为镜像发送一次并在任何地方运行它,环境隔离和完整性......对吧?!
无论如何,您可以在 github上看到有关该问题的更多详细信息。
另外,我在 Windows Server uservoice 上打开了这个建议,以改变这种行为。
此外,我已打开此功能建议以改进时区的Azure AKS 主机配置。
小智 5
截至 2021 年 5 月,2105B 服务版本(WS2019 版本 10.0.17763.1935)现在支持在容器内配置时区的功能。您可以使用 tzutil 或 Set-TimeZone 来设置容器本地的时区配置。
从 Windows Server 2022 开始,Tzutil.exe 和 PowerShell 的 Set-TimeZone 以及所有通过系统 API 更改时区的应用程序将能够在容器内以--isolation=process模式设置时区。在主机上运行的任何内容都将在容器内运行,包括 DST即使容器的时区具有与主机不同的 DST 策略,例如某些区域在不同的日期进入/退出 DST,或者根本不进入/退出 DST。
最初,新的和现有的容器将像以前一样继承主机的时区(时区偏差和所有其他时区设置,例如 DST 策略),但一旦在特定容器实例中进行设置,相关容器将在整个时间内坚持使用该时区。在它的剩余生命周期中,不断重新启动,直到再次改变。
更改特定容器实例中的时区对其他容器没有副作用,当然对主机也没有副作用,反之亦然。
| 归档时间: |
|
| 查看次数: |
5951 次 |
| 最近记录: |