Docker Time漂移在macOS上

时间:2018-05-24 02:26:15

标签: c# docker .net-core

我的Docker容器上经历了时间漂移,这些容器在mac上运行(v10.13.4):

Docker Version

应用正在执行以下代码:

var waitTime = InitialWaitTime;
while(condition) 
{
    Log($"Waiting for {waitTime}");
    await Task.Delay(waitTime, cancelToken);
    waitTime = await TimeSensitiveTask(cancelToken);
}

void Log(string message) 
{
    Console.WriteLine($"[{DateTime.UtcNow:o}] {message}");
}

让应用运行数小时后,使用docker logs -t container_name会显示日期中包含日期的日志。

时间漂移的结果是TimeSensitiveTask由于提前执行而失败。我确实有一个重试策略,所以在等待更多时间后它最终成功,应用程序运行的时间越早,执行就越早。

登录容器并打印当前时间也会显示未来打印时间的时间偏差。

docker exec -t <container_name> date -u && date -u
Fri May 25 14:28:16 UTC 2018
Fri May 25 14:26:34 UTC 2018

我的理解是,本地版本的docker for mac不应该有这个问题。我该怎么做才能解决这个问题?

我已经尝试将docker重置为出厂并完全卸载/重新安装docker。

1 个答案:

答案 0 :(得分:0)

此问题已在Docker v18.06.0-ce版本中解决。