docker: синхронизация времени в контейнере с хостом
У меня запускается ряд процессов в докер-контейнерах.
Но время в логах указывается совсем не такое, как на хосте.
Я попробовал пересоздать контейнер, добавив в команду docker run параметр -v /etc/timezone:/etc/timezone:ro, как это советуют в докер-форумах
Но, к сожалению, это не привело к результату:
при выполнении docker exec -it в этот контейнер, команда date выводит опять время, не совпадающее со временем хоста. Хотя cat /etc/timezone выводт в контейнере ту же таймзону ( Europe/Moscow ), что и на хосте.
Не могли бы Вы мне подсказать, в какую сторону смотреть, чтобы найти решение проблемы?
(Теоретически, я мог бы в каждый контейнер включать какой то способ при запуске принудительно поставить время, пердварительно получив его из внешнего источника, но мне это кажется очень сложным способом.)
Спасибо.
Ответы (1 шт):
да просто передайте стандартную переменную окружения TZ с именем вашей часовой зоны:
$ docker run -ti --rm debian:10 date
Fri Dec 17 22:45:46 UTC 2021
$ docker run -ti --rm -e TZ=Europe/Moscow debian:10 date
Sat Dec 18 01:46:07 MSK 2021
или даже более универсально, не указывайте зону явно, а получите её название из файла:
docker run -ti --rm -e TZ=$(cat /etc/timezone) debian:10 date
Sat Dec 18 01:53:25 MSK 2021