Docker 是一种功能强大的工具,用于将应用程序隔离在容器中并独立于平台运行。使用 Docker 时,正确配置时区通常很重要,尤其是对于依赖时间的进程。在本文中,您将了解如何在 Docker 中使用 TZ 环境变量、它的作用以及哪些时区可用。
什么是 TC 环境变量?
TZ 环境变量允许你为 Docker 容器设置时区。默认情况下,Docker 容器采用主机系统的时区。不过,如果你想确保你的容器使用特定的时区,可以使用 TZ 变量来控制。
为什么时区配置很重要?
正确的时区对以下方面至关重要
- 时间戳:生成时间戳(如在日志或数据库条目中)的应用程序必须在正确的时区生成时间戳。
- 计划任务:Cron 作业或其他基于时间的任务必须在正确的本地时间执行。
- 全球应用程序:如果不同时区的用户都在使用您的应用程序,那么正确本地化时间就非常重要。
如何在 Docker 中使用 TZ 环境变量
要指定 Docker 容器的时区,可在启动容器时设置 TZ 环境变量。具体方法是使用-e
(或--env
)开关,然后输入所需的时区说明。
示例:使用定义的时区启动容器
假设要启动一个容器并将时区设置为 “欧洲/柏林”,请使用以下命令:
docker run -e TZ=Europe/Berlin your-docker-image
无论主机系统使用哪个时区,该命令都会启动容器并确保将时区设置为柏林时区
TC 时区规范的影响
如果设置了 TZ 变量,就会产生影响:
- 容器内的系统时间:容器内所有与时间相关的操作都基于定义的时区。
- 日志和时间戳:每个生成的时间条目(如日志)都按指定时区输出。
- 计划任务:Cron 作业和其他基于时间的任务在指定时区的正确时间运行。
可用时区列表
Docker 支持由 IANA(互联网号码分配机构)维护的所有时区。这些时区以 “地区/城市 “格式指定。下面是一些最常用的时区:
- UTC(协调世界时)
- 欧洲/柏林
- 欧洲/伦敦
- 美国/纽约
- 美国/洛杉矶
- 亚洲/东京
- 亚洲/上海
- 澳大利亚/悉尼
- 非洲/约翰内斯堡
- 太平洋/奥克兰
使用以下命令可以显示 Linux 系统上可用时区的完整列表:
timedatectl list-timezones