技术解析
前几天研究用Docker运行MC服务器来实现资源隔离,但是发现一个小问题,容器内使用 date命令显示时间正常,但是MC服务器里日志时间错误,疑似时区出现问题。
经过初步确认,应该是时间问题,于是百度搜索相关问题,找到了前辈遇到的坑,刚好说明了这个问题,并且里面提出了解决方案,使用解决方案操作后,重启容器,显示时间正常。
1.向宿主机的/etc/timezone文件内写入时区,JDK通过这个文件里面的时区来生成日志时间
echo "Asia/Shanghai" > /etc/timezone
2.重建容器,挂载宿主机的localtime和timezone文件到容器中,并且设置权限为只读,防止被恶意修改
-v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \
3.重新启动容器即可
docker restart [Container]
4.(修改成功)