হোকার মেশিনের সাথে ডকার কনটেইনার স্বয়ংক্রিয়ভাবে সিঙ্ক হবে?


108

প্রদান করা আমি ইতিমধ্যে ডকারের ধারকটির টাইমজোনটি সঠিকভাবে পরিবর্তন করেছি। সময় সময় সিঙ্ক করার জন্য আমার কি ডকার পাত্রে ভিতরে একটি এনটিপি সার্ভার ইনস্টল করা দরকার বা কনটেইনারটি তার হোস্ট মেশিন থেকে সময়টি সিঙ্ক করবে?

উত্তর:


103

আপনি যদি বুট 2 ডকারে ওএসএক্স চালিয়ে যাচ্ছেন তবে এই সমস্যাটি দেখুন: https://github.com/boot2docker/boot2docker/issues/290

টাইম সিঙ্কটি একটি ইস্যুতে পরিণত হয় কারণ আপনার ওএস ঘুমানোর সময় বুট 2 ডকার হোস্টের টাইম ড্রিফ্ট থাকে। আপনার ডকারের ধারকটির সাথে সময় সংযোগটি আপনার ধারকটি দিয়ে চালিয়ে সমাধান করা যাবে না-v /etc/localtime:/etc/localtime:ro

পরিবর্তে, আপাতত, আপনাকে পর্যায়ক্রমে ওএসএক্স এ চালাতে হবে:

/usr/local/bin/boot2docker ssh sudo ntpclient -s -h pool.ntp.org

কাইটমেটিক ব্যবহারকারীদের জন্য আপডেট

আপনি যদি কাইটেম্যাটিক চালাচ্ছেন যা এখন ওএসএক্সে ডকারে উঠার এবং চালানোর জন্য প্রস্তাবিত প্রক্রিয়া, আপনি আপনাকে সময়-সময় এই আদেশটি চালাতে হবে:

docker-machine ssh default 'sudo ntpclient -s -h pool.ntp.org'

অথবা, ডকারের পুরানো সংস্করণগুলির জন্য

docker-machine ssh dev 'sudo ntpclient -s -h pool.ntp.org'

ওএসএক্সের জন্য নতুন নেটিভ ডকার ব্যবহারকারীদের জন্য আপডেট

নতুন ডকার বিটা ভার্চুয়ালবক্স এবং ডকার মেশিনকে সরিয়ে দেয়। ডকারের সর্বশেষ বিল্ডগুলি (বর্তমানে, 1.12.1-বিটা 25 (বিল্ড: 11807)) মনে হয় যখন একটি সময় বিচ্ছিন্ন হয়ে পড়েছে এবং তদনুসারে সামঞ্জস্য করার সক্ষমতা রয়েছে। সুতরাং, এটি আর সমস্যা হওয়া উচিত নয় ... হুরে !!


ধন্যবাদ, দয়ালু স্যার!
seanmcl

তোমাকে অনেক ধন্যবাদ. এটিই কেবল কাজ করেছিল।
মার্ক বাও


7
নোট করুন যে ওএসএক্স বিটার জন্য ডকারের জন্য, ধারকটি পুনরায় চালু করা আমার কাজ করে না, এবং এটির পুনরুদ্ধারও করেনি। পরিবর্তে, আমাকে নিজেই ডকার পুনরায় চালু করতে হয়েছিল (মেনুবার আইকন থেকে)।
পোল

আমি প্রতি 5 মিনিটে ডকার-মেশিন ভিএমগুলিতে সময় সিঙ্ক্রোনাইজ করার জন্য এই উত্তরের উপর ভিত্তি করে একটি সিএমআই সরঞ্জাম লিখেছিলাম । আমার ওএসএক্স এল ক্যাপিটান এবং উইন্ডোজ 7 প্রো
পিতৃদেবগুলিতে

50

https://github.com/sameersbn/docker-gitlab/issues/77

Sameersbn এর উত্তর দেখুন।

option 1: -v /etc/localtime:/etc/localtime:ro
option 2: -e "TZ=Asia/Shanghai"

2
বিকল্প 2 আমার জন্য কাজ করেছে। আমি আসলে এটি পছন্দ অন্যান্য অপশন তুলনায় আরও সুস্পষ্ট।
রায়ান ওয়ালস

ধন্যবাদ 2 বিকল্পটিও আমার পক্ষে কাজ করেছিল। আমার ম্যাকে অপশন 1 সহ একটি ত্রুটি পেয়েছি কারণ আমার কোনও ইত্যাদি / লোকালটাইম ফোল্ডার নেই।
জারলেগ

46

-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

25
আমি জানি না যে মূল প্রশ্নটি টাইমজোনগুলি সম্পর্কে আরও ছিল (উদাহরণস্বরূপ তা নিশ্চিত করে যে ধারকটি ডিএসটি এবং টাইমজোন পরিবর্তনগুলিকে সম্মান করবে) বা সঠিক সময় রাখা (যেমন কনটেইনার ঘড়িটি প্রবাহিত হবে না তা নিশ্চিত করে)। যদি এটি টাইমজোনগুলি সম্পর্কে হয় তবে উত্তরটি সঠিক। যদি এটি ক্লক ড্রিফ্ট সম্পর্কে হয় তবে আপনার চিন্তা করার দরকার নেই: ধারকটির ঘড়িটি হোস্টের ঘড়ির সমান (পাত্রে এটি পরিবর্তন করতে পারে না, এটি --privilegedমোডে চলাকালীন )।
জেপাজাজো

@ জাপাপাজ্জো সম্মত হয়েছেন; dateআমার এমডব্লিউইতে হোস্ট মেশিনে কল করার দরকার ছিল, কারণ এটি অন্যথায় সম্ভবত পরিষ্কার নয় যে ধারকটি হোস্টের কাছ থেকে তার সময় পায় gets
shabbychef

1
setup mount namespace mounting /etc/localtime into /mnt/sda1/var/lib/docker/aufs/mnt/.../etc/localtime not a directory
ব্রায়ান টিঙ্গল

এটি ওএসএক্সে 1.3 প্রতি ডকারে কাজ করে না বলে মনে হয়। ব্রায়ান টিঙ্গলের মতো একই ত্রুটি।
esilver

1
@ ইজিলভার বুট 2 ডকার কেবলমাত্র ডিফল্টরূপে / ব্যবহারকারীদের অধীন সাব-ডিরেক্টরিগুলি মাউন্ট করতে পারে
মেঘন

27

ম্যাক ওএস এক্স বিটার জন্য ডকারে, আমি ভিএম-তে উল্লেখযোগ্য ড্রাফ্টের অভিজ্ঞতা পেয়েছি, যা আলপাইন লিনাক্স ভিত্তিক। থেকে আলপাইন লিনাক্স প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী আপনি নিম্নলিখিত কমান্ডের সাহায্যে VM- র ঘড়িটি সিংক্রোনাইজ করতে পারেন।

ntpd -d -q -n -p pool.ntp.org

তবে, ভিএম-তে টার্মিনালে অ্যাক্সেস পাওয়া অন্য প্রশ্ন, আপনি যদি স্ক্রিন কমান্ড ব্যবহার করেন তবে এটি করা যেতে পারে।

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

সেই পথটি একটি সিলেমিংক, যা আমার সিস্টেমে পয়েন্ট করে /dev/ttys003

একবার প্রবেশ করলে, নোট করুন যে কোনও পাসওয়ার্ড নেই moby loginsimply rootআপনি শেষ করার পরে, CTRL-A, D স্ক্রিন সেশন থেকে সংযোগ বিচ্ছিন্ন করবে।

দ্রষ্টব্য: এটি ম্যাক ঝামেলা শ্যুটিংয়ের জন্য ডকারে নথিভুক্ত করা হত তবে এটি সম্ভবত নামানো হয়েছে বলে মনে হয়। ডকারকন ২০১ 2016 এ থাকাকালীন আমি এটি দেখার জন্য যথেষ্ট ভাগ্যবান ছিলাম It মনে হয় ডকার অভিজ্ঞতা থেকে সম্পূর্ণভাবে ভিএম বিমূর্ত করার চেষ্টা করছেন, এটি কেন এটি আর নথিভুক্ত করা হয়নি তা ব্যাখ্যা করে।


3
বিরতিহীন ডকার-মেশিন ছাড়াই নতুন আরসি ব্যবহার করা লোকদের জন্য এটি সদ্য গৃহীত উত্তর হওয়া উচিত
ব্লিজেড

2

ডকারে অক্স সময় চলার জন্য বর্তমান সমাধান (এপ্রিল 2018):

আমার একটি এনটিপি সার্ভারে আমার ম্যাক রয়েছে তবে ধারকগুলি সহ এই স্থির ক্লক ড্রিফট রয়েছে:

Https://docs.docker.com/docker- for- mac / troubleshoot /# mitted- issues থেকে :

যদি আপনার সিস্টেমে কোনও এনটিপি সার্ভারে অ্যাক্সেস না থাকে, তবে হাইবারনেটের পরে ম্যাকের জন্য ডকারের দ্বারা দেখার সময়টি হোস্টের সাথে যথেষ্ট সুসংগত না হয়ে থাকতে পারে। তদুপরি, সময় ধীরে ধীরে ব্যবহারের সময় সিঙ্কের বাইরে চলে যেতে পারে। হাইবারনেশনের পরে সময়টি ম্যানুয়ালি রিসেট করতে চালনা করুন:

docker run --rm --privileged alpine hwclock -s

অথবা, উভয় সমস্যা সমাধানের জন্য, আপনি স্থানীয় ঘড়িটি হোস্টের জন্য নিম্ন-অগ্রাধিকার (উচ্চ স্তরের) ফ্যালব্যাক এনটিপি সময় উত্স হিসাবে যুক্ত করতে পারেন। এটি করতে হোস্টের /etc/ntp-restrict.conf সম্পাদনা করুন:

server 127.127.1.1              # LCL, local clock
fudge  127.127.1.1 stratum 12   # increase stratum

তারপরে এনটিপি পরিষেবাটি পুনরায় আরম্ভ করুন:

sudo launchctl unload /System/Library/LaunchDaemons/org.ntp.ntpd.plist
sudo launchctl load /System/Library/LaunchDaemons/org.ntp.ntpd.plist

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.