tag run remove hub example compose docker ntp

run - docker tag example



¿Cómo asegurarme de que el tiempo de Docker se sincronice con el del anfitrión? (10)

Tengo estibadores corriendo en servidores Linode. A veces, veo que no es el momento adecuado para los estibadores. Actualmente he cambiado el script de ejecución en cada ventana acoplable para incluir las siguientes líneas de código.

yum install -y ntp service ntpd stop ntpdate pool.ntp.org

Sin embargo, lo que idealmente me gustaría hacer es que el acoplador sincronice el tiempo con el host. ¿Hay alguna forma de hacer esto?


Con la ventana acoplable para ventanas, tuve que marcar

MobyLinuxVM > Settings > Integration Services > Time synchronization

en el administrador de Hyper-V y funcionó


Estaba enfrentando un tiempo compensado de -1 hora y 4 minutos

Al reiniciar Docker mismo se arregló el problema para mí.

Para configurar la zona horaria en general:

  1. ssh en su contenedor: docker exec -it my_website_name bash

  2. ejecutar dpkg-reconfigure tzdata

  3. date ejecución

Esto es lo que funcionó para mí con un host Fedora 20. Ejecuté un contenedor usando:

docker run -v /etc/localtime:/etc/localtime:ro -i -t mattdm/fedora /bin/bash

Inicialmente /etc/localtime era un enlace suave a /usr/share/zoneinfo/Asia/Kolkata que es el tiempo estándar indio. La date ejecución dentro del contenedor me mostró la misma hora que en el host. Salí del shell y detuve el contenedor usando el docker stop <container-id> .

A continuación, eliminé este archivo y lo hice vincular a /usr/share/zoneinfo/Singapore para fines de prueba. El tiempo de host se estableció en la zona horaria de Singapur. Y luego docker start <container-id> . Luego accedió a su caparazón nuevamente usando nsenter y descubrió que el tiempo ahora estaba configurado en la zona horaria de Singapur.

docker start <container-id> docker inspect -f {{.State.Pid}} <container-id> nsenter -m -u -i -n -p -t <PID> /bin/bash

Entonces la clave aquí es usar -v /etc/localtime:/etc/localtime:ro cuando ejecuta el contenedor por primera vez. Lo encontré en este enlace .

Espero eso ayude.


La fuente de esta respuesta es el comentario a la respuesta en: ¿Tiempo de sincronización automática del contenedor docker con la máquina host?

Después de mirar la respuesta, me di cuenta de que no hay forma de que ocurra un cambio de reloj en el contenedor de la caja. Docker usa el mismo reloj que el host y la ventana acoplable no puede cambiarlo. Significa que hacer un ntpdate dentro de la ntpdate acoplable no funciona.

Lo correcto es actualizar el host de tiempo usando ntpdate

En lo que respecta a la sincronización de zonas horarias, -v /etc/localtime:/etc/localtime:ro funciona.



Parece que puede haber desviación de tiempo si está utilizando Docker Machine, como sugiere esta respuesta: https://.com/a/26454059/105562 , debido a VirtualBox.

Una solución rápida y fácil es simplemente reiniciar su VM:

docker-machine restart default


Puede agregar sus archivos locales (/ etc / timezone y / etc / localtime) como volumen en su docker-container.

Actualiza tu docker-compose.yml con las siguientes líneas.

volumes: - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro"

Ahora el tiempo del contenedor es el mismo que en tu host


Si está utilizando boot2docker y ntp no funciona dentro de la máquina acopladora de Docker (está detrás de un proxy que no reenvía paquetes ntp) pero su servidor tiene sincronía de tiempo, puede ejecutar lo siguiente desde su host:

docker-machine ssh default "sudo date -u $(date -u +%m%d%H%M%Y)"

De esta manera, está enviando la hora actual de su máquina (en la zona horaria UTC) como una cadena para configurar la hora de la máquina acopladora usando la date (nuevamente en la zona horaria UTC).

NOTA: en Windows, dentro de un shell bash (del msys git), use:

docker-machine.exe ssh default "sudo date -u $(date -u +%m%d%H%M%Y)"


Si está utilizando docker-machine, las máquinas virtuales pueden derivar. Para actualizar el reloj en la máquina virtual sin reiniciar la ejecución:

docker-machine ssh <machine-name|default> sudo ntpclient -s -h pool.ntp.org

Esto actualizará el reloj en la máquina virtual usando NTP y luego todos los contenedores lanzados tendrán la fecha correcta.


Tengo lo siguiente en el archivo de composición

volumes: - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro"

Entonces, todo está bien en la ventana acoplable de Gerrit con su conjunto de réplica_log con la marca de tiempo correcta. :-RE