Some of the links shared in this post are affiliate links. If you click on the link and make a purchase, we will receive an affiliate commission at no additional cost to you.
Docker es una potente herramienta para aislar aplicaciones en contenedores y ejecutarlas de forma independiente de la plataforma. Al utilizar Docker, a menudo es importante configurar correctamente la zona horaria, especialmente para los procesos que dependen de la hora. En este artículo, aprenderás a utilizar la variable de entorno TZ en Docker, qué hace y qué zonas horarias están disponibles.
¿Qué es la variable de entorno TC?
La variable de entorno TZ te permite establecer la zona horaria de un contenedor Docker. Por defecto, los contenedores Docker adoptan la zona horaria del sistema anfitrión. Sin embargo, si quieres asegurarte de que tu contenedor utiliza una zona horaria concreta, puedes controlarlo mediante la variable TZ.
¿Por qué es importante la configuración de la zona horaria?
La zona horaria correcta es crucial para:
- Marcas de tiempo: Las aplicaciones que generan marcas de tiempo (por ejemplo, en registros o entradas de bases de datos) deben generarlas en la zona horaria correcta.
- Tareas programadas: Los Cron jobs u otras tareas basadas en el tiempo deben ejecutarse a la hora local correcta.
- Aplicaciones globales: Si tu aplicación la utilizan usuarios de distintas zonas horarias, es importante que la hora esté correctamente localizada.
Cómo utilizar la variable de entorno TZ en Docker
Para especificar la zona horaria de un contenedor Docker, establece la variable de entorno TZ al iniciar el contenedor. Esto se hace con el modificador -e
(o --env
), seguido de la especificación de la zona horaria deseada.
Ejemplo: Iniciar contenedor con zona horaria definida
Suponiendo que quieras iniciar un contenedor y establecer la zona horaria en “Europa/Berlín”, utiliza el siguiente comando:
dockerrun -e TZ=Europa/Berlíntu-imagen-docker
Este comando inicia el contenedor y se asegura de que la zona horaria se establece en Berlín, independientemente de la zona horaria que utilice el sistema anfitrión
Efectos de la especificación del huso horario TC
Si estableces la variable TZ, esto tiene efecto:
- Hora del sistema dentro del contenedor: Todas las operaciones que dependen de la hora en el contenedor se basan en la zona horaria definida.
- Registros y marcas de tiempo: Cada entrada de tiempo generada (por ejemplo, en los registros) se emite en la zona horaria especificada.
- Tareas programadas: Los Cron jobs y otras tareas basadas en el tiempo se ejecutan a la hora correcta en la zona horaria especificada.
Lista de husos horarios disponibles
Docker es compatible con todas las zonas horarias mantenidas por la IANA (Internet Assigned Numbers Authority). Estas zonas horarias se especifican en el formato “Región/Ciudad”. Aquí tienes una selección de las zonas horarias más utilizadas:
- UTC (Tiempo Universal Coordinado)
- Europa/Berlín
- Europa/Londres
- América/Nueva_York
- América/Los_Ángeles
- Asia/Tokio
- Asia/Shanghai
- Australia/Sydney
- África/Johannesburgo
- Pacífico/Auckland
Puedes mostrar una lista completa de las zonas horarias disponibles en tu sistema Linux con el siguiente comando:
timedatectllist-timezones
También puedes encontrar en Internet una lista de husos horarios de la IANA.