背景 ここ 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アプレットはキャンバスを使用して時計を描画します
序文最近、X 省のコールド チェーン トレーサビリティ システムの開発で忙しくしています。毎日午後 ...
1. まず、次のパスに従って対応するフォルダを作成します。 ローカルのdockerでmysqlを実行...
最近、小さなプログラムを書いています。その小さなプログラムの公式ウェブサイトはhttpsを使用する必...
リスト形式のテキストの展開と折りたたみの実装は参考までに。具体的な内容は以下のとおりです。必要: 1...
VMware バージョン: VMware-workstation-full-16 VMware バー...
1. まず、自分のdockerhubアカウントを登録します。登録アドレス: https://hub....
この記事ではJavaScript検索のデータ表示コードを参考までに共有します。具体的な内容は以下のと...
この記事では、例を使用して MySQL ビューの原理と使用方法を説明します。ご参考までに、詳細は以下...
この記事では、スライドタブを実装するためのjQueryの具体的なコードを参考までに紹介します。具体的...
以下のインストールではすべて、インストール ルート ディレクトリとして ~/ ディレクトリが使用され...
1. CSS ボックスモデルボックスには、余白、境界線、パディング、コンテンツが含まれます境界線の接...
この記事では、例を使用して、MySQL ビューの一貫性を確保する方法 (チェック オプションを使用)...
背景tomcat によって生成された catalina.out ログ ファイルが分割されていない場合...
目次問題の概要問題の再現問題の拡大結論は問題の概要今日、仕事中に、DBA が突然、SQL に暗黙的な...
今日ご紹介したいのは、ネイティブ JS を使用してプログレス バーをドラッグし、要素の透明度を変更す...