Ollie
May 4, 2022, 10:43am
#1
मैं अपने डॉकर होस्ट के समान टाइमज़ोन के साथ एक डॉकर कंटेनर चलाने की कोशिश करता हूं । मेजबान समय क्षेत्र है CEST
.
जब मैं दौड़ता हूं :
$ dateThu Apr 16 11:04:11 CEST 2020$ docker run -e TZ=CEST debian:buster dateThu Apr 16 09:04:14 CEST 2020
कंटेनर मेजबान से 2 घंटे पीछे है ।
दूसरी ओर, अगर मैं सेट TZ=Europe/Paris
, यह उम्मीद के मुताबिक काम करता है :
$ docker run -e TZ=Europe/Paris debian:buster dateThu Apr 16 11:04:22 CEST 2020
क्या यह एक बग है या मुझे कुछ याद आ रहा है?
Skylar
May 4, 2022, 10:48am
#2
टाइमज़ोन डिफ़ॉल्ट रूप से सेट है और आपको इसे मैन्युअल रूप से बदलना होगा ।
कुछ विकल्प हैं:
यह सेट में Dockerfile:
ENV TZ=America/Los_AngelesRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
अपने होस्ट के साथ सिंक्रनाइज़ करने के लिए वॉल्यूम का उपयोग करना:
volumes:- "/etc/timezone:/etc/timezone:ro"- "/etc/localtime:/etc/localtime:ro"
या
docker run -v /etc/timezone:/etc/timezone:ro
अंत में, इसे मैन्युअल रूप से सेट करें लेकिन यदि आप कंटेनर को पुनरारंभ करते हैं तो आप कॉन्फ़िगरेशन खो देते हैं:
docker run -e TZ=America/New_York ubuntu date
कुछ शोध के बाद, ऐसा प्रतीत होता है कि CEST
के लिए एक वैध मूल्य नहीं है TZ
पर्यावरण चर। CEST
का सिर्फ एक प्रदर्शन योग्य संस्करण है CET
जब वर्तमान तिथि है गर्मी।
वास्तव में, अगर मैं सेट करता हूं TZ
स्पष्ट रूप से अमान्य मान के लिए, यह देता है :
$ TZ=FOO dateFri Apr 17 14:07:56 FOO 2020
यह भी ध्यान दें कि इसका डॉकर से कोई संबंध नहीं है ।
सन्दर्भ :