Docker容器怎么修改时区

2022年4月8日 1209点热度
问题:当我们在使用容器运行WordPress时,如果只是在WordPress后台常规设置中将时间设定成上海时区,会发现插件的时间比如WP2Static的时间并没有使用上海时区,这是因为WordPress插件的时区是依据数据库的时间,而数据库容器默认还是UTC0时区。

DockerCompose配置文件修改容器的时区有两种方式:
1、Volumes映射,这种方式是将宿主机/etc/localtime的映射到容器里,容器和宿主机时区一致
    volumes:
      - /etc/localtime:/etc/localtime:ro
      
#      - /etc/timezone:/etc/timezone:ro
 “ro”的意思是只读(read-only)模式,可以保证其挂载卷不被 Docker 容器内部文件系统配置所覆盖。
 /etc/localtime是用来描述本机时间
 /etc/timezone是用来描述本机所属的时区
 实际上只需要映射一个/etc/localtime既可以有效修改容器时间
2、变量方式,这种方式容器和宿主机时区可以不一致
    environment:
     - TZ=Asia/Shanghai

DockerCompose更新容器后进入容器确认时间修改成功:
# docker exec -it test_db_1 /bin/bash
root@9d71b0c7350c:/# date
Fri Apr  8 17:33:17 CST 2022 
与当前本地时间一致,修改完毕。

书三拾

不积跬步无以至千里