Docker 容器时区不对,`timedatectl` 不存在怎么办?

Docker 封装出来的系统,经常会遇到时区不对的问题。新建容器时,有些环境可以直接通过 docker run 增加参数解决:

bash 复制代码
-e 'TZ=Asia/Shanghai'

但如果容器已经在本地修正和使用过很多次,不适合删除后重新 run,那就需要在现有容器里直接处理。

01 | 为什么 timedatectl 会失败?

笔者进入容器后,尝试按常规方式修改时区:

bash 复制代码
timedatectl set-timezone Asia/Shanghai

结果直接报错:

bash 复制代码
bash: timedatectl: command not found

当前环境信息如下:

bash 复制代码
uname -a
bash 复制代码
Linux ora26ai 5.15.0-316.196.4.2.el8uek.x86_64 #2 SMP Thu Feb 5 10:42:53 PST 2026 x86_64 GNU/Linux

这是因为 Docker 容器内,尤其是基于 Oracle Linux / RedHat 的最小化镜像,为了精简体积,通常没有安装 systemd。所以 timedatectl 这个命令不存在,也就不能用它来改时区。

02 | 直接修改 /etc/localtime

在容器中修改时区,最直接有效的方式,是修改本地时区文件或软链接。

如果容器内已经存在时区数据库,比如 /usr/share/zoneinfo/Asia/Shanghai,可以在容器 root 权限下执行:

bash 复制代码
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date

前两行命令会删除原有本地时区配置,并把上海时区链接到 /etc/localtime。最后用 date 验证时间是否已经变成 CST,也就是中国标准时间。

03 | 如果没有 Asia/Shanghai 文件怎么办?

有些 Docker 环境里,执行上面的方法会发现缺少:

bash 复制代码
/usr/share/zoneinfo/Asia/Shanghai

这时只复制宿主机的 /etc/localtime 可能还不够,因为容器内本质上缺少对应的时区数据库文件。

可以从宿主机复制上海时区文件到容器内。假设容器名是 vis-server,先创建目录:

bash 复制代码
docker exec -it vis-server mkdir -p /usr/share/zoneinfo/Asia

再把宿主机的时区文件复制进去:

bash 复制代码
docker cp /usr/share/zoneinfo/Asia/Shanghai vis-server:/usr/share/zoneinfo/Asia/Shanghai

之后再进入容器,重新执行:

bash 复制代码
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date

这样就可以在不重建容器的情况下,把 Docker 容器时间对齐到北京/上海时间。

关注我,和AI一起成长~

相关推荐
CQU_JIAKE8 小时前
10.30【A】
linux
Zevalin爱灰灰8 小时前
Linux入门第二部分(ARM裸机篇) 第一章 开发环境搭建与了解
linux·arm开发·嵌入式
LHICOD9 小时前
Linux-2
java·linux·后端·jar·vmware·svm·vm
余额瞒着我当琳9 小时前
Linux初识:Linux的历史,计算机的发展脉络,发行版本,选购云服务器,安装Xshell,第一次连接,基础命令指南
linux·运维·服务器
垆边人似月.9 小时前
RDMA 文件传输踩坑(四):从固定延时改造为 READY/ACK 协议
linux·服务器·网络
水饺编程9 小时前
第2章:Linux 基础,制作【.tar.xz】压缩包文件
linux·c语言·汇编
阿里云基础软件10 小时前
Agent 任务提速 10.71%,内存占用降低 21.60%|Alibaba Cloud Linux 4 重大发布
java·linux·人工智能·操作系统·agent
m0_7436975910 小时前
DNS的反向域名的相关问题
linux
Android系统攻城狮11 小时前
Linux FFmpeg深度解析之avcodec_parameters_from_context调用流程与实战(十六)
linux·运维·ffmpeg·音视频进阶·ffmpeg音视频·车载音视频进阶
思想觉悟11 小时前
SEAndroid实战
android·linux·c++