Docker 镜像设置时区
Docker Hub 中的官方镜像,一般都默认设置为 UTC 时间。而我们位于东八区,在启动容器或构建自己的镜像时,往往需要对时区进行设置。根据基础镜像的不同,设置时区的方法也有所区别。
https://blog.csdn.net/this_is_id/article/details/113364718
基于 Alpine 镜像
与 Debian 镜像不同,Alpine 镜像中并没有包含 tzdata,所以只设置 TZ 环境变量并不能达到我们想要的效果,因此需要安装 tzdata。
基础镜像:
Nginx 镜像:
Nginx 貌似安装过了tzdata工具,只需要设置 TZ 环境参数即可
OpenJDK 镜像:
由于无法直接通过环境变量设置时区,因此需要在容器中使用本地时间时,只能先基于原有的镜像构建自己的镜像,在启动容器时使用自己构建的镜像即可。
Spring Boot 项目 Dockerfile 示例:
Uni-App 项目 Dockerfile 示例:
Vue 项目 Dockerfile 示例:
基于 Debian 镜像
由于 Debian 镜像中已经包含了 tzdata,因此设置时区的方法比较简单,只需添加环境变量 TZ 即可。我们可以通过启动一个 Debian 容器,运行其中的 date 命令来验证。
当需要在容器中使用本地时间的时候,只需在启动容器时,添加参数-e TZ=Asia/Shanghai即可。
如果是构建 Docker 镜像,可以这样写:
基础镜像:
基于 Ubuntu 镜像
Ubuntu 镜像中也没有包含 tzdata,设置时区的方法与 Alpine 镜像相似。
写成 Dockerfile 如下:
作者:Jeebiz 创建时间:2023-02-12 01:47
最后编辑:Jeebiz 更新时间:2025-04-24 16:40
最后编辑:Jeebiz 更新时间:2025-04-24 16:40