Docker 解决容器时区时间不一致问题
问题
项目部署上线后发现容器内时间和宿主机相差 8 个小时。原因是容器默认时区为 UTC,与中国时区(UTC+8)不一致。
解决:设置 TZ 环境变量
修改 docker-compose.yml,添加 environment 参数:
1environment:
2 - TZ=Asia/Shanghai
完整示例:
1version: "3"
2services:
3 app:
4 container_name: document
5 image: app:2015
6 # 解决时区问题
7 environment:
8 - TZ=Asia/Shanghai
9 volumes:
10 - ./app/logs:/opt/app/logs
11 - ./app/application.yml:/opt/document/application.yml:ro
12 ports:
13 - 1590:1590
14 links:
15 - mysql
16 - web
其他解决方式:挂载宿主机时区文件
将宿主机的时间和时区文件挂载到容器中:
1docker run -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -ti centos bash
