1、普通容器创建启动后,时间不准确情况解决办法
有时我们通过docker创建启动容器后, 通过 docker exec -it 容器ID /bin/bash 进入容器后,通过 date命令 查看当前时间出现时区偏差, 这时就需要进行时间修正。
进入docker已运行容器里中:
执行命令 :
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、面对tomcat容器,里面运行的java应用输出 new Date() 等时间日志信息,依然显示时间不对, 咋办呢?
情况描述:
根据1中方法进行容器时间修正后, 但容器中java应用时间还是相差8个小时
原因分析:
docker中的java应用获取时间是从 timezone中获取,因此进入docker,修改timezone
解决方法:
进入容器执行如下命令
echo "Asia/Shanghai" > /etc/timezone
cat /etc/timezone
显示上海时区,发现问题解决,java应用的时间为东八区时间
3、最后, 如果容器还没创建,可以在容器创建时一次性修正时间:
通过挂载方式修正时间,类似命令如下:
docker run -d --name 此处是容器别名 -v /etc/localtime:/etc/localtime /etc/timezone:/etc/timezone -p 8080:8080 tomcat(即镜像名称)