Windows Docker Desktop Linux mode - docker 容器时间偏差



问题:如何将 docker 容器时间映射到本地 PC 时间以同步 docker 容器内的时间?

在我的 Windows 10 PC 上,我运行的是 Linux 模式 docker 桌面版本 2.2.0.4 (43472(,docker 引擎 19.03.8。

创建的所有 docker 容器都显示出与主机容器的巨大时间偏差:

从 centos 8 docker 容器:

[root@/]# 日期 2020 年 5 月 7 日星期四 01:18:16 UTC

从在 Windows 10 PC 上运行 Window Doker 桌面的 docker 主机:

PS>日期

14 5月 2020 14:42:17

我尝试使用-v选项创建一个新容器,如下所示:

docker container run -it -v c:\docker_volumes\docker1:/storage -v/etc/localtime:/etc/localtime:ro--name centos7-squid centos:7.7.1908/bin/bash

我收到以下错误

无法在本地找到图像"centos:7.7.1908" 7.7.1908:从库/centos 中提取 f34b00c7da20:拉取完成摘要:sha256:50752af5182c6cd5518e3e91d48f7ff0cba93d5d760a67ac140e2d63c4dd9efc 状态:已下载 centos:7.7.1908 的较新映像 C:\Program Files\Docker\Docker\resources\bin\docker.exe:来自守护程序的错误响应:OCI 运行时创建失败:container_linux.go:349:启动容器进程导致"process_linux.go:449:导致容器初始化"rootfs_linux.go:58:将 \\"/etc/localtime\\" 挂载到 rootfs \\"/var/lib/docker/overlay2/c7e86cffdc46c354f19b25fa97146ce8f2caee653793219719b043c97040d1b7/merged\\" at\\"/var/lib/docker/overlay2/c7e86cffdc46c354f19b25fa97146ce8f2caee653793219719b043c97040d1b7/merged/usr/share/zoneinfo/UTC\\" 导致 \\"不是目录\\"\": 未知: 您是否正在尝试将目录挂载到文件上(反之亦然(?检查指定的主机路径是否存在且是否为预期类型。

我通过设置运行 docker 的虚拟机的硬件时钟来修复它:

Docker Run --rm --privileged alpine hwclock -s

信用: https://blog.jverkamp.com/2017/11/15/clock-drift-in-docker-containers/

最新更新