是否可以更改码头集装箱上的时间

时间:2019-08-13 05:51:43

标签: windows docker

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

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

  

抛出异常:   中的“ System.ServiceModel.Security.MessageSecurityException”   mscorlib.dll类型的异常   发生“ System.ServiceModel.Security.MessageSecurityException”   mscorlib.dll,但未在用户代码中处理。   收到来自另一方的错误保护的错误。见   内部FaultException,以获取故障代码和详细信息。

这是在Windows 10计算机(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版提供解决方案。

1 个答案:

答案 0 :(得分:2)

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

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

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