Lösen Sie das Problem des 8-Stunden-Unterschieds zwischen Docker-Container und Host-Computer

Lösen Sie das Problem des 8-Stunden-Unterschieds zwischen Docker-Container und Host-Computer

Bei der Verwendung von Docker-Compose für die Bereitstellung werden die Ausgabeprotokolle und zugehörigen Ereignisse überprüft und ausgegeben, was zu einer 8-stündigen Differenz zwischen den Ereignissen und der Realität führt.

Fehlerbehebung:

1. Überprüfen Sie die Hostzeit:

# Uhrzeit und Datum anzeigen
Mittwoch, 29. September 2021, 11:12:44 CST
# Überprüfen Sie das Zeitzonendatum -R
Mi, 29. Sept. 2021 11:13:34 +0800

2. Geben Sie den Container ein, um die Zeit anzuzeigen

# Alle Container anzeigen docker ps -a
# Geben Sie den Container ein docker eec -it [Container-ID] /bin/bash
# Uhrzeit und Datum anzeigen

Zu diesem Zeitpunkt ist die Hostzeit dieselbe wie die Zeit des Docker-Containers. Nachdem ich Baidu durchsucht hatte, wurde mir schließlich klar, dass es sich um ein Zeitzonenproblem handelte.

Linux-Zeit:

Behälterzeit:

Ursache: Für den Hostcomputer ist eine Zeitzone eingestellt, für den Docker-Container jedoch nicht. Dadurch besteht ein Zeitunterschied von 8 Stunden zwischen den beiden Computern.

CST sollte sich beziehen auf (China Shanghai Time, Eastern Time Zone 8)
UTC sollte sich beziehen auf (Koordinierte Weltzeit, Standardzeit)
Daher müsste der Unterschied zwischen diesen beiden Zeiten eigentlich 8 Stunden betragen.

Daher müssen die Zeitzonen der beiden Länder vereinheitlicht werden.

Lösung:

1. Docker-Compose-Konfigurationsvolume einbinden

Bände:
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

2.Dockerfile führt den Befehl aus und gibt die entsprechende Zeitzone an timezone aus

RUN echo "Asia/shanghai" > /etc/zeitzone
 
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3. Löschen Sie den Container und führen Sie ihn erneut aus

#Docker rm [Container-ID] löschen
# Starten Sie docker-compose -f [Dateiname] up -d

Zusammenfassung: Der 2-stündige Zeitunterschied wird durch das /etc/timezone-Problem im Container verursacht. Sie können die entsprechende Zeitzone einstellen.

Dies ist das Ende dieses Artikels über den 8-Stunden-Unterschied zwischen Docker-Container und Host-Rechner. Weitere relevante Inhalte zu Docker-Containern und Host-Rechnern finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Docker ermöglicht den nahtlosen Aufruf von Shell-Befehlen zwischen Container und Host
  • Lösung für den Docker-Container, der keine Schreibberechtigung für das Host-Verzeichnis hat
  • Lösung, wenn der Docker-Container nicht auf den Host-Port zugreifen kann
  • Führen Sie die Shell oder das Programm im Docker-Container auf dem Host aus.
  • Aufrufen und Ausführen von Host-Docker-Operationen im Docker-Container
  • Detaillierte Erläuterung zur Lösung des Problems, dass der Docker-Container nicht über IP auf den Hostcomputer zugreifen kann
  • So verwenden Sie einen Docker-Container für den Zugriff auf das Host-Netzwerk

<<:  Verwenden Sie thead, tfoot und tbody, um eine Tabelle zu erstellen

>>:  Einführung in neue ECMAscript-Objektfunktionen

Artikel empfehlen

vsCode generiert Vue-Vorlagen mit einem Klick

1. Verwenden Sie die Tastenkombination Strg + Ums...

Vier Methoden zur Verwendung von JS zur Bestimmung von Datentypen

Inhaltsverzeichnis Vorwort 1. Art von 2. Instanz ...

Fassen Sie den User-Agent beliebter Browser zusammen

1. Grundkenntnisse: HTTP-Header-Benutzeragent Use...

Eine detaillierte Einführung in die Linux-Verzeichnisstruktur

Wenn Sie mit dem Erlernen von Linux beginnen, müs...

Linux verwendet stty zum Anzeigen und Ändern von Terminalzeileneinstellungen

Sttty ist ein gängiger Befehl zum Ändern und Druc...

So erstellen Sie eine PHP+Nginx+Swoole+MySQL+Redis-Umgebung mit Docker

Betriebssystem: Alibaba Cloud ESC-Instanz centos7...

JavaScript zum Erzielen eines Zeitbereichseffekts

In diesem Artikel wird der spezifische Code für J...

Analyse verschiedener Fehler bei Sortierregeln für MySQL-Tabellen

Der folgende Fehler wird gemeldet, wenn MySQL meh...

So unterscheiden Sie MySQLs innodb_flush_log_at_trx_commit und sync_binlog

Die beiden Parameter innodb_flush_log_at_trx_comm...

So zeigen Sie den Datenbankinstallationspfad in MySQL an

Wir können den Installationspfad von MySQL über d...

Detaillierte Schritte zum Erstellen einer React-Anwendung mit einer Rails-API

Inhaltsverzeichnis Backend: Rails API-Teil Front-...

Detaillierte Anwendungsfälle von Vue3 Teleport

Offizielle Website https://cli.vuejs.org/en/guide...

So implementieren Sie mehrere Parameter in el-dropdown in ElementUI

Aufgrund der zunehmenden Anzahl von Schaltflächen...

Zusammenfassung der Javascript-Datumstools

lass Utils = { /** * Ist es das Todesjahr? * @ret...