在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、