繁体   English   中英

是否可以更改Docker容器上的时间

[英]is it possible to change the time on a docker container

我在Windows中的Docker容器大约是未来9个小时,并且正在阻止https工作。

我正在尝试使用C#进行SOAP调用。 一切都可以在我的Win10 WS上完美运行,但是如果我将其放入同一主机上的docker容器中,它将失败

引发的异常:mscorlib.dll中的“ System.ServiceModel.Security.MessageSecurityException”在mscorlib.dll中发生了类型为“ System.ServiceModel.Security.MessageSecurityException”的异常,但未在用户代码中进行处理从以下位置接收到不安全或安全保护不正确的错误:对方。 有关错误代码和详细信息,请参见内部FaultException。

这是在Windows 10计算机上(Ver 1803)

我已经确认主机和容器都具有相同的时区(UTC + 8),并且如果我更改主机时间以尝试进行补偿,则主机也有相同的错误,但是容器似乎并不想采用新的时间,并且仍将在未来9个小时左右。

我大约一年前发现了一些类似的问题,但似乎都没有解决该问题。 没有修复程序,我看不到如何在容器中工作。

我已经在以下图像上尝试过

FROM microsoft/aspnet
FROM mcr.microsoft.com/dotnet/framework/aspnet:20181113-4.7.2-windowsservercore-1803
FROM microsoft/iis

与Docker Desktop 2.1.0.1一起运行(37199)

编辑

我还尝试在Windows上使用curl来访问银行站点(https),该站点在容器中也失败了,但在我的工作站上工作正常。 卷曲误差如下

PS C:\> curl https://www.anz.com.au/personal/
curl : The request was aborted: Could not create SSL/TLS secure channel.
At line:1 char:1
+ curl https://www.anz.com.au/personal/
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: 
(System.Net.HttpWebRequest:Htt
   pWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : 
WebCmdletWebResponseException,Microsoft.PowerShe
   ll.Commands.InvokeWebRequestCommand

更多信息

在Windows Server 2019(1809版)上安装mcr.microsoft.com/dotnet/framework/aspnet:4.8(日期正确在容器中的主机之后),我的IIS应用现在可以与所需的https站点通信。

看起来1803版本和日期可能存在长期存在的问题。 我仍然希望有人能够为1803版本提供解决方案。

我已经确定Windows版本1803的docker容器(可能不是主机操作系统)在docker容器中的日期存在问题。 我已经使用Windows Update将我的OS更新为1903,并重新运行了1803版本的Docker容器,它仍然出现相同的问题。

然后,我创建了一个1903年版的容器,它现在可以正确反映当前的日期/时间,而不是将来的大约9个小时。

因此,解决方案是升级到较新的Win10版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM