在Docker容器中修改时区

发布时间:2025-06-24 19:04:38  作者:北方职教升学中心  阅读量:091


 。

输出 :

Tue Nov 26 09:25:29 CST 2024。在Docker容器中修改时区。查看当前时间 。

第二步:
亚洲/上海通过软链接 的时区信息 指导时区信息。版本1。

前因:

当我们在Linux或Docker中部署程序时,

第一步:
备份原始时区信息。

/* 这里配置的环境变量 Asia/Shanghai是我需要的时区 */# docker run -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro 镜像名。检查Docker容器外的时间。时区配置与宿主机相同。

date。

但是通过java发现neww Date()获得的仍然是容器默认时区,因为java是通过获取timezone来设置时间的,因此,

第三步:
验证。

解决:

一、

[root@localhost ~]# date2024年 07月 17日 星期三 14:35:12 CST。

timedatectl status。

可以看到时区修改为CST,也就是正常的北京时间(东八区)
 。查看详细时间  。

[root@localhost ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime。

docker run id -v /etc/localtime:/etc/localtime:ro  镜像名。

二、

创建容器时,宿主机上的时区默认覆盖容器中的时区配置文件,也就是说,

[root@localhost ~]# mv /etc/localtime localtime.bak。进入Docker容器。

docker exec -it bc09f80ab449 bash 或者【docker exec -it 容器ID /bin/bash】命令进入Docker容器。

输出:

Local time: Mon 2024-11-25 17:59:14 CSTUniversal time: Mon 2024-11-25 09:59:14 UTCRTC time: Mon 2024-11-25 09:59:14Time zone: Asia / Shanghai(CST, +0800)NTP enabled: noNTP synchronized: yesRTC in local TZ: noDST active: n / a。方法二:[宿主机]执行命令,【docker cp  /usr/share/zoneinfo/Asia/Shanghai 容器ID:/etc/localtime】,重启Docker容器。

方法1:[宿主机]执行命令,【docker cp /etc/localtime 容器ID:/etc/localtime】,重启Docker容器。

docker exec bc09f80ab449 date。版本2。

5、


2、

3、

其中 bc09f80ab449 容器ID,通过Docker ps获取。方法3:执行[容器]的命令,【ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime】,重启Docker容器。(无论.Net或Java或等等;获取系统时间(例如C# DateTime.Now),与北京的时差为8小时。

4、容器还需要设置时区。

执行【date】检查Docker容器的命令时间发现与宿主机有误差时,修改时间和时区。

先放几个Linux下常用命令:

1、