我的Docker容器上经历了时间漂移,这些容器在mac上运行(v10.13.4):
应用正在执行以下代码:
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。
答案 0 :(得分:0)
此问题已在Docker v18.06.0-ce版本中解决。