You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10中Docker Linux容器时间与主机不符的修复求助

解决Windows 10上Linux容器时间与主机不一致的问题

问题场景

我在Windows 10系统上基于ubuntu:18.04构建Docker镜像,运行Linux容器时,date命令返回的时间比主机早2小时。已更新Docker至最新版本,尝试执行sudo hwclock --debug时得到如下输出:

hwclock from util-linux 2.31.1
System Time: 1690445278.534910
Trying to open: /dev/rtc0
Trying to open: /dev/rtc
Trying to open: /dev/misc/rtc
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method.

当前使用Linux容器,Docker Desktop中可见“切换到Windows容器...”选项。


解决方法

1. 挂载主机时区文件到容器

运行容器时直接挂载主机的时区配置文件,让容器复用主机的时区设置:

docker run -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro 你的镜像名称

ro参数表示只读挂载,避免容器修改主机的时区配置。

2. 在Dockerfile中固化时区设置

构建镜像时直接配置时区,后续运行容器无需额外参数:

FROM ubuntu:18.04

# 安装时区工具并设置目标时区(替换为你需要的时区,比如Asia/Shanghai)
RUN apt-get update && apt-get install -y tzdata \
    && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && dpkg-reconfigure -f noninteractive tzdata

# 可选:设置时区环境变量
ENV TZ=Asia/Shanghai

重新构建镜像后,容器启动时就会使用指定时区。

3. 启动容器时临时指定时区

如果只是临时调整,不需要修改镜像,启动容器时通过环境变量指定:

docker run -e TZ=Asia/Shanghai 你的镜像名称

关于hwclock错误的说明

Linux容器共享宿主机内核,没有独立的硬件时钟设备,因此hwclock无法找到硬件时钟是正常现象,这个错误不影响时区调整,无需处理。

内容的提问来源于stack exchange,提问作者Irbis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 19:41:01