डॉकर कंटेनर समय 2 घंटे पीछे जब टीजेड=सेस्ट

मैं अपने डॉकर होस्ट के समान टाइमज़ोन के साथ एक डॉकर कंटेनर चलाने की कोशिश करता हूं । मेजबान समय क्षेत्र है 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

क्या यह एक बग है या मुझे कुछ याद आ रहा है?

टाइमज़ोन डिफ़ॉल्ट रूप से सेट है और आपको इसे मैन्युअल रूप से बदलना होगा ।

कुछ विकल्प हैं:

यह सेट में 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

यह भी ध्यान दें कि इसका डॉकर से कोई संबंध नहीं है ।

सन्दर्भ :