问题
Docker中默认UTC时区,和北京时间差八个小时,需要手动设置解决多个容器和宿主机协作上的时间同步问题
解决方案
- 可以在构建镜像时创建;
- 这里是docker容器运行时的配置方法,避免了重新构建镜像的繁琐。
docker run -e TZ=Asia/Shanghai \
sh -c 'ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone '
参数说明:
-e 设置环境变量
sh -c 容器内执行多行命令
ps:进入容器执行date命令,时区仍然是UTC;实际使用中,应用程序获取到的时间显示为+8区,满足需求。