コンテンツへスキップ
Home » DockerでTZタイムゾーン指定を使う:手順と利用可能なタイムゾーン

DockerでTZタイムゾーン指定を使う:手順と利用可能なタイムゾーン

Advertisements

Some of the links shared in this post are affiliate links. If you click on the link and make a purchase, we will receive an affiliate commission at no additional cost to you.


Dockerは、アプリケーションをコンテナで分離し、プラットフォーム非依存で実行するための強力なツールだ。Dockerを使用する際、特に時間に依存するプロセスでは、タイムゾーンを正しく設定することが重要になることが多い。この記事では、DockerでTZ環境変数を使用する方法、TZ環境変数の役割、利用可能なタイムゾーンについて説明する。

TC環境変数とは何か?

TZ環境変数で、Dockerコンテナのタイムゾーンを設定できる。デフォルトでは、Dockerコンテナはホストシステムのタイムゾーンを採用する。しかし、コンテナが特定のタイムゾーンを使用するようにしたい場合は、TZ変数を使用して制御できる。

なぜタイムゾーンの設定が重要なのか?

正しいタイムゾーンは非常に重要である:

  • タイムスタンプ:タイムスタンプを生成するアプリケーション(ログやデータベース・エントリなど)は、正しいタイムゾーンでタイムスタンプを生成しなければならない。
  • スケジュールされたタスク:Cronジョブやその他の時間ベースのタスクは、正しいローカル時間に実行されなければならない。
  • グローバルなアプリケーション:アプリケーションが異なるタイムゾーンのユーザーによって使用される場合、時間が正しくローカライズされていることが重要である。

DockerでTZ環境変数を使う方法

Dockerコンテナのタイムゾーンを指定するには、コンテナの起動時にTZ環境変数を設定する。これは、-e(または--env)スイッチの後に希望のタイムゾーンを指定することで行う。

例:定義されたタイムゾーンでコンテナを開始する

コンテナを起動し、タイムゾーンを “ヨーロッパ/ベルリン “に設定したい場合、以下のコマンドを使用する:

docker run -e TZ=Europe/Berlin your-docker-image

このコマンドはコンテナを起動し、ホストシステムが使用するタイムゾーンに関係なく、タイムゾーンがベルリンに設定されるようにする。

TC時間帯指定の効果

TZ変数を設定すれば、この効果はある:

  • コンテナ内のシステム時間:コンテナ内の時間に依存する操作はすべて、定義されたタイムゾーンに基づく。
  • ログとタイムスタンプ:生成された各タイムエントリー(ログなど)は、指定されたタイムゾーンで出力される。
  • スケジュールされたタスク:Cronジョブやその他の時間ベースのタスクは、指定されたタイムゾーンの正しい時間に実行される。

利用可能なタイムゾーンのリスト

Dockerは、IANA(Internet Assigned Numbers Authority)によって管理されているすべてのタイムゾーンをサポートしている。これらのタイムゾーンは “Region/City “というフォーマットで指定される。以下は最も頻繁に使用されるタイムゾーンの抜粋である:

  • UTC(協定世界時)
  • ヨーロッパ/ベルリン
  • ヨーロッパ/ロンドン
  • アメリカ/ニューヨーク
  • アメリカ/ロサンゼルス
  • アジア/東京
  • アジア/上海
  • オーストラリア/シドニー
  • アフリカ/ヨハネスブルグ
  • パシフィック/オークランド

Linuxシステムで利用可能なタイムゾーンの完全なリストは、以下のコマンドで表示できる:

timedatectl list-timezones

あるいは、オンラインでIANAタイムゾーンのリストを見つけることもできる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Mastodon