背景 ここ 2 日間 Docker を使用していたところ、コンテナの起動後に date -R の出力タイムゾーンが UTC になり、北京時間より常に 8 時間遅れていることに気付きました。
/etc/localtime を確認すると、デフォルトのタイムゾーンは Etc/UTC であることがわかりました。また、TZ 環境変数は設定されていません。 Linux でタイムゾーンの問題に対処する方法 実際、タイム ゾーン処理の問題はすべて、glibc でのタイム ゾーン処理の問題です。この問題に関する最も権威のあるドキュメントは、TZ 環境変数について説明し、タイム ゾーンの問題の処理を紹介する公式の glibc ドキュメントです。 https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html#TZ-Variable 弊社に関係する部分は以下の通りです。 基本的な意味は次のとおりです。glibc では、TZ 環境変数の値は、タイムゾーン関連の情報を記述したファイルの名前です。 TZ 環境変数が設定されていない場合、システムはデフォルト値を選択します。glibc では、デフォルト値は /etc/localtime です。TZ 環境変数に値があり、その値が / で始まる場合、それは絶対パスのファイル名です。それ以外の場合、ファイル名は /usr/share/zoneinfo/$TZ です。/usr/share/zoneinfo ディレクトリには、Asia/Shanghai など、世界のさまざまな地域のローカル時間情報が含まれています。通常、このディレクトリ内のファイルは tzdata パッケージによってインストールされます。 この考えに従って、TZ環境変数をAsia/Shanghaiに強制すると、タイムゾーンは正しいものになります。 /etc/localtime ファイルを強制的に変更し、タイムゾーンも正しくなります。 Dockerコンテナでタイムゾーンを処理する方法 上記の説明によると、Docker コンテナでタイムゾーンを設定するには、実際には主に 2 つの方法があります。1 つは TZ 環境変数を直接設定する方法で、もう 1 つは TZ 環境変数を設定せずに /etc/localtime の内容を直接変更する方法です (ソフト リンク経由またはファイルを直接コピーする方法)。 ここでは、TZ 環境変数の設定を例に挙げます (私はこれを自分で行うことを好みます。/etc/localtime を変更するよりも便利だと感じます)。 まず、Dockerfile に ENV TZ=Asia/Shanghai を追加して、Docker によって構築されたイメージのデフォルトの TZ 環境変数が必要な値になるようにします。 次に、コンテナをプルアップするときに、-e TZ=Asia/Shanghai を使用して TZ 環境変数を設定することもできます。この設定は動的です。プルアップするときに、同じイメージに異なる値を設定できます。 要約する docker でのタイムゾーン処理は、実際には glibc でのタイムゾーン処理です。glibc の処理方法を理解すると、その中心となるのは TZ 環境変数と /etc/localtime ファイルであり、docker でのタイムゾーン処理は簡単です。 以下もご興味があるかもしれません:
|
<<: InnoDB がトランザクション分離レベルを巧みに実装する方法
>>: WeChatアプレットはキャンバスを使用して時計を描画します
注意: .NET FrameWork はコア モードで実行できないため、コア インストール モードの...
目次01 アトミックDDLの紹介02 一部のDDL操作の実行動作の変更03 DDL 操作のログを表示...
この記事は51CTOブログの著者wjw555の作品を参照しています。スクリプトの内容: vim イン...
この種のエラーに対処するための 1 つの方法は、まずマークアップとスタイルシートを検証することです。...
Web デザインの理解に関しては、多くの人がまだ Web ページ制作のレベルにとどまっているようで...
ルートジャンプ this.$router.push('/course'); this...
mysql5.7.18のインストール時に次の問題が発生しました: プログラム入力ポイントfesetr...
簡単な説明これは CSS3 のクールな 3D キューブのプリロード効果です。この特殊効果は、シンプル...
この記事では、Excelテーブルプラグインを導入するVueの具体的なコードを参考までに共有します。具...
序文システムにファイル システムを作成し、それを永続的または非永続的にマウントする方法を学習します。...
React プロジェクトで要素フレームワークを使用するのは今回が初めてです。非常に単純な問題に遭遇し...
Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...
目次01 問題の説明02 ソリューション1. 他のスレーブライブラリを見つけてすぐに置き換える2. ...
序文ご存知のとおり、Linux ではハードディスクやグラフィック カードなどすべてがファイルです。 ...
アップグレードプロセス:元のシステム: CentOS7.3 [root@my-e450 ~]# un...