首先,排查宿主机时间是否正确。
第二步:
# 进入容器 docker exec -it <container_id> bash # 检查当前时间 date # 检查环境变量 env | grep TZ # 检查时区文件 ls -la /etc/localtime cat /etc/timezone
我是发现我这个容器没有
/etc/localtime
第三步:解决方案
# 1. 进入容器修复 docker exec -it <container_id> /bin/sh # 在容器内执行: apk add tzdata # Alpine
第四步:验证
# 1. 进入容器修复 docker exec -it <container_id> /bin/sh # 在容器内执行: date
发现时间已正常,与宿主机一致。
这就是解决docker 容器设置了 TZ = Asia/Shanghai 时间却还是不对的问题的解决方案。