查看宿主机时区和时间:
[root@iZbp19plg6p1ajmesvagqvZ ~]# timedatectl Local time: 五 2023-07-07 15:28:28 CST Universal time: 五 2023-07-07 07:28:28 UTC RTC time: 五 2023-07-07 07:28:27 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: n/a RTC in local TZ: no [root@iZbp19plg6p1ajmesvagqvZ ~]# date 2023年 07月 07日 星期五 15:30:10 CST
进入容器查看容器时间:
[root@iZbp19plg6p1ajmesvagqvZ ~]# docker exec -it hello-jenkins bash root@5cb7e14e4f12:/# date Fri Jul 7 07:32:47 UTC 2023
可以看到,默认容器的时间是UTC标准时间,而我们的宿主机使用的是东八区时间,此时可以在容器启动时挂载本机时间到容器中:
-v /etc/localtime:/etc/localtime
如果容器不方便重新创建,可以复制一份过去:
docker cp /etc/localtime {容器id或容器name}:/etc/localtime
再次查看容器时间:
[root@iZbp19plg6p1ajmesvagqvZ ~]# docker exec -it hello-jenkins bash root@a6cbf1b8666c:/# date Fri Jul 7 15:44:27 CST 2023
此时,容器时间和宿主机保持一致。
如果容器运行的是Java程序,比如在代码中输出指定格式时间,调用方法时依然返回标准时间:
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
// 2023-07-07 07:49:41
在启动容器加上指定时区:
-e TZ="Asia/Shanghai"
此时,输出时间变为:2023-07-07 15:53:49
标签:容器,07,宿主机,时间,2023,Docker,root From: https://www.cnblogs.com/coderxin/p/17535234.html