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 – это мощный инструмент для изоляции приложений в контейнерах и их платформонезависимого запуска. При использовании Docker часто бывает важно правильно настроить часовой пояс, особенно для процессов, зависящих от времени. В этой статье ты узнаешь, как использовать переменную окружения TZ в Docker, что она делает и какие часовые пояса доступны.
Что такое переменная окружения TC?
Переменная окружения TZ позволяет задать часовой пояс для контейнера Docker. По умолчанию контейнеры Docker принимают часовой пояс хост-системы. Однако если ты хочешь, чтобы твой контейнер использовал определенный часовой пояс, ты можешь управлять этим с помощью переменной TZ.
Почему важна настройка часового пояса?
Правильный выбор часового пояса очень важен для:
- Временные метки: приложения, которые генерируют временные метки (например, в журналах или записях базы данных), должны генерировать их в правильном часовом поясе.
- Задания по расписанию: Задания Cron или другие задачи, основанные на времени, должны выполняться в правильное местное время.
- Глобальные приложения: Если твоим приложением пользуются пользователи из разных часовых поясов, важно, чтобы время было локализовано правильно.
Как использовать переменную окружения TZ в Docker
Чтобы указать часовой пояс контейнера Docker, при запуске контейнера установи переменную окружения TZ. Это делается с помощью ключа -e
(или --env
), за которым следует нужная спецификация часового пояса.
Пример: запуск контейнера с определенным часовым поясом
Предположим, что ты хочешь запустить контейнер и установить часовой пояс “Европа/Берлин”, используй следующую команду:
dockerrun -e TZ=Europe/Berlinyour-docker-image
Эта команда запускает контейнер и гарантирует, что часовой пояс будет установлен на Berlin, независимо от того, какой часовой пояс использует хост-система
Влияние спецификации часового пояса TC
Если ты установил переменную TZ, это оказывает влияние:
- Системное время внутри контейнера: все операции в контейнере, зависящие от времени, основываются на определенном часовом поясе.
- Журналы и временные метки: каждая сгенерированная временная запись (например, в журналах) выводится в указанном часовом поясе.
- Задачи по расписанию: Задания Cron и другие задачи, основанные на времени, запускаются в нужное время в указанном часовом поясе.
Список доступных часовых поясов
Docker поддерживает все часовые пояса, которые поддерживаются IANA (Internet Assigned Numbers Authority). Эти часовые пояса указываются в формате “Регион/Город”. Вот подборка наиболее часто используемых часовых поясов:
- UTC (универсальное координированное время)
- Европа/Берлин
- Европа/Лондон
- Америка/Новый_Йорк
- Америка/Лос_Анджелес
- Азия/Токио
- Азия/Шанхай
- Австралия/Сидней
- Африка/Йоханнесбург
- Тихий океан/Окленд
Ты можешь вывести полный список доступных часовых поясов в твоей Linux-системе с помощью следующей команды:
timedatectllist-timezones
Кроме того, ты можешь найти список часовых поясов IANA в Интернете.