我们使用docker启动一些服务时,启动好的容器时间和时区与我们所处的地方的时间和时区对不上,这样会导致一些程序的错乱,影响服务使用

通常我们使用如下的配置设置docker容器启动的时区和时间,正常情况下是可以生效的

environment:
- TZ=Asia/Shanghai
- TIME_ZONE=Asia/Shanghai
增加映射:
volumes:
- /etc/localtime:/etc/localtime:ro

 

但是我遇到一种情况是容器使用的是 alpine linux镜像, 当前默认不含时区数据包的,导致上面的时区和时间配置无法生效

解决方法:

进入容器内部
docker exec -it [container id OR container name ] /bin/bash
查看Linux内核版本
cat /etc/issue
安装时区数据包
apk add tzdata
映射时区文件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
查看时间和时区
date -R

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐