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 to potężne narzędzie do izolowania aplikacji w kontenerach i uruchamiania ich niezależnie od platformy. Podczas korzystania z Dockera często ważne jest prawidłowe skonfigurowanie strefy czasowej, szczególnie w przypadku procesów zależnych od czasu. W tym artykule dowiesz się, jak używać zmiennej środowiskowej TZ w Dockerze, co ona robi i jakie strefy czasowe są dostępne.
Czym jest zmienna środowiskowa TC?
Zmienna środowiskowa TZ umożliwia ustawienie strefy czasowej dla kontenera Docker. Domyślnie kontenery Docker przyjmują strefę czasową systemu hosta. Jeśli jednak chcesz upewnić się, że twój kontener używa określonej strefy czasowej, możesz to kontrolować za pomocą zmiennej TZ.
Dlaczego konfiguracja strefy czasowej jest ważna?
Prawidłowa strefa czasowa ma kluczowe znaczenie dla:
- Znaczniki czasu: Aplikacje generujące znaczniki czasu (np. w dziennikach lub wpisach w bazie danych) muszą generować je we właściwej strefie czasowej.
- Zaplanowane zadania: Zadania Cron lub inne zadania oparte na czasie muszą być wykonywane we właściwym czasie lokalnym.
- Aplikacje globalne: Jeśli Twoja aplikacja jest używana przez użytkowników w różnych strefach czasowych, ważne jest, aby czas był prawidłowo zlokalizowany.
Jak używać zmiennej środowiskowej TZ w Dockerze?
Aby określić strefę czasową kontenera Docker, ustaw zmienną środowiskową TZ podczas uruchamiania kontenera. Odbywa się to za pomocą przełącznika -e
(lub --env
), po którym następuje specyfikacja żądanej strefy czasowej.
Przykład: Uruchom kontener ze zdefiniowaną strefą czasową
Zakładając, że chcesz uruchomić kontener i ustawić strefę czasową na “Europa/Berlin”, użyj następującego polecenia:
dockerrun -e TZ=Europe/Berlinyour-docker-image
To polecenie uruchamia kontener i zapewnia, że strefa czasowa jest ustawiona na Berlin, niezależnie od strefy czasowej używanej przez system hosta
Skutki specyfikacji strefy czasowej TC
Jeśli ustawisz zmienną TZ, będzie to miało wpływ:
- Czas systemowy w kontenerze: Wszystkie operacje zależne od czasu w kontenerze są oparte na zdefiniowanej strefie czasowej.
- Dzienniki i znaczniki czasu: Każdy wygenerowany wpis czasu (np. w dziennikach) jest wyświetlany w określonej strefie czasowej.
- Zaplanowane zadania: Zadania Cron i inne zadania oparte na czasie są uruchamiane we właściwym czasie w określonej strefie czasowej.
Lista dostępnych stref czasowych
Docker obsługuje wszystkie strefy czasowe utrzymywane przez IANA (Internet Assigned Numbers Authority). Te strefy czasowe są określone w formacie “Region/Miasto”. Poniżej znajdziesz wybór najczęściej używanych stref czasowych:
- UTC (uniwersalny czas koordynowany)
- Europa/Berlin
- Europa/Londyn
- Ameryka/Nowy_Jork
- Ameryka/Los_Angeles
- Azja/Tokio
- Azja/Szanghaj
- Australia/Sydney
- Afryka/Johannesburg
- Pacyfik/Auckland
Możesz wyświetlić pełną listę dostępnych stref czasowych w systemie Linux za pomocą następującego polecenia:
timedatectllist-timezones
Możesz również znaleźć listę stref czasowych IANA online.