在Docker作为生产环境下,很多时候对系统时间有所要求,而因为容器的建立不严谨或者差异化。导致容器时间不对或者相差8小时(即系统为CST时间 容器为UTC时间)
爬了很多帖子,楼 聊聊无几,还有一个某help论坛要注册才能看,注册过程满套路 且最后居然要邀请码才能注册!放弃了!
案例
1.环境变量
部分网友使用 环境变量 TZ=Asia/shanghai
这个并不是适用所有容器
2.cp主机时区配置文件
docker run --name <name> -v /etc/localtime:/etc/localtime:ro ....
或者
docker cp /etc/localtime:【容器ID或者NAME】/etc/localtime
再或者
FROM redis
FROM tomcat
ENV CATALINA_HOME /usr/local/tomcat
以上方法感谢lqh的分享,解决方法基于该方法
说明:群晖在Doker管理器上没有root权限 所以 /usr /etc 这些目录 无法直接通过docker管理面板去访问
若感兴趣可尝试。本站尝试 并未生效
一下来说一个本站提供的解决方法:
1.查看容器时间
开启容器 并点击详情-终端机-新增
通过命令启动,并输入命令 /bin/sh
以进入终端
点击新建立的终端 sh
进入终端 输入命令 date
查看容器时间
对比系统时间 相差8小时 且一个为UTC时间 而系统时间是CST时间
2.开启DSM ssh 并获取root权限
获取root权限参照
[post cid="392" /]
3.root登陆 ssh终端
输入命令 docker ps
获取时间不对容器的id
4.执行命令
docker cp /etc/localtime 040a7616f83d:/etc/localtime
命令中 040a7616f83d 为 时间不对容器的id
执行命令后 返回第一步 查看容器时间是否变化
已经解决,该容器关闭等操作 均不会受影响。如果删除了 重新建立 则需要重复该方法