新建docker通常会遇到时间没有正确设置的问题,导致运行的容器应用如果使用了server time zone也会跟着时间不正确,特别在数据库容器情况下高发。
遇到数据库时间不正确情况时,如果你是docker方式部署,优先检查docker的date是否正确。
#进入容器
docker exec -it dockerid bash
#查看容器时间
$:date
如果你遇到和本地时间相差八个小时的情况,那么问题就不用再深入排查了,解决容器的时区问题就好了。
我的办法是停止容器,删除容器,在之前容器的run命令增加一个挂载宿主机时区的参数
docker run -v /etc/localtime:/etc/localtime
重新运行命令,容器的时区就和宿主机保持一致了。
因为,我的容器所有配置和数据都是-v挂在宿主机里的,删除重新运行不会有什么影响。
所以在你stop/remove docker之前先确定自己的数据和配置是否不会丢失?
强烈建议,容器使用-v把数据挂载到宿主机。
强烈建议,第一次运行就把时区命令加上,省得日后修改。