जवाबों:
यदि आप OSX रनिंग बूट 2 डॉक पर हैं, तो इस मुद्दे को देखें: https://github.com/boot2docker/boot2docker/issues/290
टाइम सिंक एक मुद्दा बन जाता है क्योंकि बूट 2docker होस्ट का समय बहाव है, जबकि आपका ओएस सो रहा है। अपने डॉकटर कंटेनर के साथ टाइम सिंक को आपके कंटेनर को चलाकर हल नहीं किया जा सकता है-v /etc/localtime:/etc/localtime:ro
इसके बजाय, अब के लिए, आपको समय-समय पर इसे OSX पर चलाना होगा:
/usr/local/bin/boot2docker ssh sudo ntpclient -s -h pool.ntp.org
Kitematic के उपयोगकर्ताओं के लिए अद्यतन
यदि आप Kitematic चला रहे हैं , जो अब OSX में Docker पर उठने और चलने के लिए सुझाया गया तंत्र है, तो आपको समय-समय पर इस कमांड को चलाना होगा:
docker-machine ssh default 'sudo ntpclient -s -h pool.ntp.org'
या, docker के पुराने संस्करणों के लिए
docker-machine ssh dev 'sudo ntpclient -s -h pool.ntp.org'
OSX के लिए नए देशी डॉकर के उपयोगकर्ताओं के लिए अद्यतन
नया डॉकटर बीटा वर्चुअलबॉक्स और डॉकर मशीन के साथ दूर करता है। Docker के नवीनतम बिल्ड (वर्तमान में, १.१२.१-बीटा २५ (बिल्ड: ११ontin०))) का पता लगाने की क्षमता है जब एक समय की छूट और तदनुसार समायोजित किया गया है। इस प्रकार, यह अब एक मुद्दा नहीं होना चाहिए ... हुर्रे !!
https://github.com/sameersbn/docker-gitlab/issues/77
देखिए एसर्सबीएन का जवाब।
option 1: -v /etc/localtime:/etc/localtime:ro
option 2: -e "TZ=Asia/Shanghai"
सबसे आसान समाधान आपके कंटेनर को -v /etc/localtime:/etc/localtime:ro
विकल्प के साथ चलाना प्रतीत होता है । इस प्रकार:
#run without tz info:
docker run --rm -t -i ubuntu date
Wed Apr 2 18:40:07 UTC 2014
# run with tz info:
docker run --rm -t -i -v /etc/localtime:/etc/localtime:ro ubuntu date
Wed Apr 2 11:40:29 PDT 2014
--privileged
मोड में चल रहा हो, तब कंटेनर इसे बदल नहीं सकता है)।
date
अपने MWE में होस्ट मशीन पर कॉल शामिल करना चाहिए , क्योंकि यह अन्यथा स्पष्ट नहीं है कि कंटेनर को मेजबान से अपना समय मिलता है।
setup mount namespace mounting /etc/localtime into /mnt/sda1/var/lib/docker/aufs/mnt/.../etc/localtime not a directory
मैक ओएस एक्स बीटा के लिए डॉकर पर, मैंने वीएम पर महत्वपूर्ण बहाव का अनुभव किया, जो अल्पाइन लिनक्स पर आधारित है। से अल्पाइन लिनक्स पूछे जाने वाले प्रश्न आप निम्न आदेश के साथ वी एम की घड़ी सिंक्रनाइज़ कर सकते हैं।
ntpd -d -q -n -p pool.ntp.org
हालांकि, वीएम पर एक टर्मिनल तक पहुंच प्राप्त करना एक और सवाल है, जो स्क्रीन कमांड का उपयोग करने पर किया जा सकता है।
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
वह मार्ग एक सिम्लिंक है, जो मेरे सिस्टम पर इंगित करता है /dev/ttys003
।
एक बार जब आप अंदर पहुंच जाते हैं, तो ध्यान दें कि moby login
बस root
बिना पासवर्ड के है। आपके समाप्त होने के बाद, CTRL-A, D स्क्रीन सत्र से डिस्कनेक्ट हो जाएगा।
नोट: यह मैक ट्रबल शूटिंग के लिए डॉकर पर प्रलेखित किया गया था, लेकिन लगता है कि इसे नीचे ले जाया गया है। मैं भाग्यशाली था कि इसे डॉकरेकॉन 2016 में दिखाया गया था। ऐसा लगता है कि डॉकटर वीएम को अनुभव से पूरी तरह से अलग करने की कोशिश कर रहा है, जो बताता है कि अब इसका दस्तावेजीकरण क्यों नहीं हुआ।
Dox (अप्रैल 2018) पर ऑक्स टाइम ड्रिफ्ट का वर्तमान समाधान:
मेरे पास एक NTP सर्वर पर मेरा मैक है, लेकिन कंटेनरों के साथ यह निश्चित घड़ी का बहाव:
से https://docs.docker.com/docker-for-mac/troubleshoot/#known-issues :
यदि आपके सिस्टम में एक NTP सर्वर तक पहुंच नहीं है, तो हाइबरनेट के बाद Docker द्वारा मैक के लिए देखा गया समय होस्ट के साथ सिंक से काफी बाहर हो सकता है। इसके अलावा, समय धीरे-धीरे उपयोग के दौरान सिंक से बाहर हो सकता है। हाइबरनेशन के बाद मैन्युअल रूप से रीसेट करने के लिए, रन करें:
docker run --rm --privileged alpine hwclock -s
या, दोनों समस्याओं को हल करने के लिए, आप होस्ट के लिए स्थानीय घड़ी को निम्न-प्राथमिकता (उच्च स्ट्रेटम) फ़ॉलबैक NTP समय स्रोत के रूप में जोड़ सकते हैं। ऐसा करने के लिए, होस्ट /etc/ntp-restrict.conf को जोड़ने के लिए संपादित करें:
server 127.127.1.1 # LCL, local clock
fudge 127.127.1.1 stratum 12 # increase stratum
इसके बाद NTP सेवा को फिर से शुरू करें:
sudo launchctl unload /System/Library/LaunchDaemons/org.ntp.ntpd.plist
sudo launchctl load /System/Library/LaunchDaemons/org.ntp.ntpd.plist
जोड़े /etc/localtime:/etc/localtime:ro
को volumes
विशेषता।
इस लिंक को देखेंएक उदाहरण प्रदर्शित करने के लिए को देखें।