Jika Anda menggunakan OSX menjalankan boot2docker, lihat masalah ini: https://github.com/boot2docker/boot2docker/issues/290
Sinkronisasi waktu menjadi masalah karena host boot2docker memiliki time drift-nya saat OS Anda tertidur. Sinkronisasi waktu dengan penampung buruh pelabuhan Anda tidak dapat diselesaikan dengan menjalankan penampung Anda dengan-v /etc/localtime:/etc/localtime:ro
Sebagai gantinya, untuk saat ini, Anda harus menjalankan ini secara berkala di OSX:
/usr/local/bin/boot2docker ssh sudo ntpclient -s -h pool.ntp.org
Pembaruan untuk pengguna Kitematic
Jika Anda menjalankan Kitematic , yang sekarang merupakan mekanisme yang disarankan untuk bangun dan berjalan di Docker di OSX, Anda harus menjalankan perintah ini secara berkala:
docker-machine ssh default 'sudo ntpclient -s -h pool.ntp.org'
Atau, untuk buruh pelabuhan versi lama
docker-machine ssh dev 'sudo ntpclient -s -h pool.ntp.org'
Pembaruan untuk pengguna Docker asli baru untuk OSX
Docker Beta baru menghilangkan VirtualBox dan Mesin Docker. Build terbaru dari buruh pelabuhan (saat ini, 1.12.1-beta25 (build: 11807)) tampaknya memiliki kemampuan untuk mendeteksi ketika ada penghentian waktu dan menyesuaikannya. Jadi, ini seharusnya tidak lagi menjadi masalah ... hore !!
https://github.com/sameersbn/docker-gitlab/issues/77
Lihat jawaban sameersbn.
sumber
Solusi paling sederhana tampaknya menjalankan penampung Anda dengan
-v /etc/localtime:/etc/localtime:ro
opsi. Jadi:sumber
--privileged
mode).date
pada mesin host di MWE saya, karena jika tidak, mungkin tidak jelas apakah container mendapatkan waktunya dari host.setup mount namespace mounting /etc/localtime into /mnt/sda1/var/lib/docker/aufs/mnt/.../etc/localtime not a directory
Di Docker untuk Mac OS X Beta, saya mengalami pergeseran yang signifikan pada VM, yang didasarkan pada Alpine Linux. Dari Alpine Linux FAQ Anda dapat menyinkronkan jam VM dengan perintah berikut.
Namun, mendapatkan akses ke terminal di VM adalah pertanyaan lain, yang dapat dilakukan jika Anda menggunakan perintah layar.
Path itu adalah symlink, yang di tunjuk oleh sistem saya
/dev/ttys003
.Setelah Anda masuk, perhatikan bahwa
moby login
is hanyaroot
tanpa kata sandi. Setelah Anda selesai, CTRL-A, D akan memutuskan sambungan dari sesi layar.CATATAN: Ini dulu didokumentasikan di Docker untuk Mac Trouble Shooting tetapi tampaknya telah dihapus. Saya cukup beruntung untuk ditampilkan saat berada di Dockercon 2016. Tampaknya Docker sedang mencoba mengabstraksi VM sepenuhnya dari pengalaman, yang menjelaskan mengapa tidak lagi didokumentasikan.
sumber
Solusi saat ini untuk osx time drift on docker (April 2018):
Saya memiliki mac saya di server NTP, tetapi jam tetap ini melayang dengan kontainer:
Dari https://docs.docker.com/docker-for-mac/troubleshoot/#known-issues :
Jika sistem Anda tidak memiliki akses ke server NTP, maka setelah hibernasi, waktu yang dilihat oleh Docker untuk Mac mungkin tidak sinkron dengan host. Selain itu, waktu mungkin perlahan-lahan tidak sinkron selama digunakan. Untuk mengatur ulang waktu secara manual setelah hibernasi, jalankan:
Atau, untuk mengatasi kedua masalah tersebut, Anda dapat menambahkan jam lokal sebagai sumber waktu NTP fallback prioritas rendah (stratum tinggi) untuk host. Untuk melakukan ini, edit /etc/ntp-restrict.conf host untuk menambahkan:
Kemudian restart layanan NTP dengan:
sumber
penggunaan buruh pelabuhan-menulis:
Tambahkan
/etc/localtime:/etc/localtime:ro
kevolumes
atribut.Lihat tautan ini untuk menunjukkan contoh.
sumber