docker容器内时区相差8小时问题

在使用docker容器查看日志的过程中,发现容器内的时间与实际时间晚了8小时,其实那个是UTC时间(标准时间),而我们所处的是CST时间(东八区时间)

下边介绍几种修改的方法:

一,进入容器内修改(已经实践过的)

(1)更改容器时间

也就是操作的文件夹是容器内的文件夹,不再是宿主机的
首先是从宿主机进入容器,输入以下命令(containerID就是我们在宿主机通过docker ps -a获取到的容器id值):

docker exec -it containerID /bin/bash

进入容器后,我们ls即可看到已经进入容器内部,容器内部的文件目录和我们的linux目录是一样的(退出容器是exit),我们输入以下命令进行修改:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

我们此使输入date即可查看到时区已经进行了更改,即便是重启也会保存此次更改
在这里插入图片描述

(2)更改java相关程序获取到的时间

虽然系统时间有改为CST时区,但是java中的new Date()获取到的时间仍然是UTC时间,这是因为:
LINUX下:jre是从/etc/sysconfig/clock这个文件中获取时区信息的,修改次文件即可,没有的话添加一个
我们使用以下命令在sysconfig目录添加一个clock文件(如果目录也不存在,那么目录也添加上)

touch clock

clock文件创建好了,我发现没有办法使用vim去编辑clock文件,可能容器内没有装vim,所以我们分别执行下边两条命令进行安装:

apt update
apt install vim

然后编辑clock文件放入以下内容,然后:wq保存退出,

ZONE="Asia/Shanghai"
UTC=false
ARC=false

就可以发现与java相关的系统日志时间已经是CST的了,我操作时间就是14:10
在这里插入图片描述

下边这两种方法是在网上找的另外两种,但是如果要是java相关程序获取到CST时间,仍然要使用上边(2)做法

二,在宿主机内对容器进行修改

直接执行以下命令,不需要进入容器内

docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime

三,通过dockerfile对容器进行修改

这个方法的好处是不用每次启动新的容器都要进行修改,上边两种方法修改后只能在同一容器中生效,通过更改dockerfile,进行创建新的容器时就已经是修改过的了,我们需要在对应镜像的dockerfile中添加如下内容:

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Java教学信息化管理系统是一款基于Java技术开发的教学信息化管理软件,主要用于高校或教育机构的教学管理、教学资源的整合、教学评价的分析等功能。这款系统具备了多种功能模块,主要包括教师管理、学生管理、课程管理、考试管理、教学资源管理等模块。 在教师管理模块中,系统可以实现包括教师信息录入、修改、删除、查询、教师用书、教师简历、教师考评等管理功能。在学生管理模块中,系统可以实现包括学生信息录入、修改、删除、查询、学生考评等管理功能。在课程管理模块中,系统可以实现包括课程录入、修改、删除、查询、课程评价等管理功能。在考试管理模块中,系统可以实现包括试卷导入、查询、评分等功能。在教学资源管理模块中,系统可以实现包括教学视频、教学文档、教学软件、教学PPT等教学资源的管理功能。 Java教学信息化管理系统具有很多优点。首先,它基于Java技术,具有良好的可移植性和扩展性。其次,系统设计合理,界面美观直观,用户易于操作。再者,系统可以实现多种功能模块,满足不同用户的需求。最后,系统能够帮助学校或教育机构实现信息化管理,提高了教学质量和效率。 总之,Java教学信息化管理系统是一款非常值得推荐的教学信息化管理软件,可以帮助学校或教育机构实现信息化管理,提高教学质量和效率。 ### 回答2: Java教学信息化管理系统是一种用于管理学校教学信息的系统,它可以帮助学校更好地管理教育资源,提高教学质量。下面是这种系统的设计与实现。 首先,该系统应该具备以下模块:学生管理,教师管理,课程管理,课程表管理,成绩管理,考勤管理等。在学生模块中,可以通过学号,姓名等关键字查询到学生的详细信息;在教师模块中,可以查询教师信息,管理教师的授课信息;在课程模块中,可以管理学校所有的课程信息;在课程表模块中,可以查看学生和教师的课表,课程时间等信息;在成绩模块中,可以进行成绩的录入、统计和分析;在考勤模块中,可以查看学生的考勤情况,对学生的缺勤情况进行管理。 其次,该系统应该基于Java编程语言进行开发。使用SpringMVC作为系统的框架,采用Mybatis作为持久层框架,在界面设计方面,采用Bootstrap作为开发工具。使用这些工具能够更好地实现系统的功能,提高用户的使用体验。 最后,在系统实现的过程中要注意系统的性能和安全问题。建立一个健全的安全机制,设置各种安全策略和限制条件,保证所有数据的安全性和可靠性。同时还要不断对系统的进行优化和加速,从而提高系统的执行效率。 综上所述,Java教学信息化管理系统是一个多模块、综合性的系统,可以帮助学校更好地管理教育资源,提高教学质量,其设计和实现都需要充分考虑到各种实际情况。 ### 回答3: Java教学信息化管理系统是一款集教学管理、教学资源管理、教学评估、学生信息管理于一体的教育管理系统。该系统设计以Java语言为主要开发语言,采用MVC模式设计和SpringBoot框架,实现了控制反转、依赖注入等技术,以确保系统的高效性和可重用性。 本教学信息化管理系统主要由五个模块构成:用户管理、课程管理、教学资源管理、学生成绩管理、角色权限管理。在用户管理模块中,用户可以进行注册、登录、修改信息等操作;在课程管理模块中,教务人员可以进行课程发布和更新等操作;在教学资源管理模块中,教师可以将教学资源进行上传、删除、修改等操作;学生成绩管理模块中,教务人员可以进行成绩登记、查询等操作;角色权限管理模块中,超级管理员可以管理系统的角色权限和菜单权限等操作。 在该系统的实现过程中,还引用了很多其他技术,如Mybatis用于DAO层操作数据库,Thymeleaf用于页面渲染,Spring Security用于安全管理,Bootstrap 4用于页面布局等。 总之,Java教学信息化管理系统有很多优点,如应用广泛、开发速度快、易维护等,它不仅能够满足教育管理的需求,也可以运用到各个领域进行信息化管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jarbein

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值