Dockerfile 设置时区

# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

或:

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

创建容器时设置时区

方式一:
将宿主机的时区挂载到容器

docker run -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime

方式二:

Docker 修改已运行容器的时区

  1. 先进入容器内:
  2. 设置时区
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

注意:如果没有设置容器的时区环境变量:ENV TZ=Asia/Shanghai,可能在操作系统用 date 命令看到时间是正确的,但是运行的程序(Node.js、Java)的时间还是老的。