查看容器时区

data -R

Tue, 25 Jan 2022 02:18:24 +0000

容器时间和宿主机同步

容器时区

  1. -e TZ=Asia/Shanghai
  2. # 例子为:run mysql
  3. docker run -p 5306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=root -e TZ=Asia/Shanghai -d mysql:8.0.26

mysql的时区

show variables like ‘%time_zone%’;

  1. docker run -p 5306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=root -e TZ=Asia/Shanghai -d mysql:8.0.26 --default-time_zone='+8:00'

Dockerfile 设置时区 (jar为例)

  1. #定义时区参数
  2. ENV TZ=Asia/Shanghai
  3. #设置时区
  4. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
  1. # docker build -t testtz:1.1 .
  2. # docker run -d -p 9001:9001 testtz:1.1
  3. # test_init-0.0.1-SNAPSHOT.jar
  4. # 基础镜像使用java
  5. from java:8
  6. # 作者
  7. maintainer tan
  8. #定义时区参数
  9. ENV TZ=Asia/Shanghai
  10. #设置时区
  11. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
  12. # 指定临时文件目录未/tmp,在主机中新建一个tmp连接到容器的tmp
  13. volume /tmp
  14. # 将jar 包添加到容器中并更名
  15. add test_init-0.0.1-SNAPSHOT.jar testtz.jar
  16. # 运行jar
  17. run bash -c 'touch /testtz.jar'
  18. entrypoint ["java","-jar","/testtz.jar"]
  19. # 暴露端口
  20. expose 9001

docker-compose设置时区

时区大全

  1. environment: # 设置环境变量,相当于docker run命令中的-e
  2. TZ: Asia/Shanghai