Docker – タイムゾーン

概要

Docker~UbuntuでタイムゾーンをUTCJSTに変更した時の手順。

手動で設定

最初はUTC

タイムゾーンの設定なしにコンテナを起動するとUTCになっている。

この時点で/etc/timezoneファイルは存在しない。

tzdataのインストール

tzdataをインストール。タイムゾーンの選択は対話形式。

無事JSTに変更されている。

/etc/timezoneファイルが作成され、内容はAsia/Tokyoとなっている。

Dockerfile

tzdataのインストール

最初にtimedatectlのインストールを試みたが、エラーでインストールできなかった。そこでtzdataをインストールする。

ENVで非インタラクティブモードに設定するのが定石らしい。

正常終了するが、UTCのまま。

/etc/timezoneは作成されていて、内容はEtc/UTCになっている。

/etc/timezoneの書き換えによる設定

Dockerfileを編集して、Asia/Tokyoの設定を追加する。

dateコマンドではJSTになっているのが確認できる。

ただし、/etc/timezoneの内容はEtc/AsiaではなくEtc/UTCのまま(echoが効いていない?)。

また、/etc/localtimeはEtc/UTCへのシンボリックリンクが張られている。

この方法は、システムのローカルタイムはJSTになっているものの、/etc/timezone、/etc/localtimeともUTCのままなのが気になる。

/etc/localtimeへのシンボリックによる設定

Dockerfileを以下のように変更して試してみた。

dateコマンドではJST、/etc/timezoneはEtc/UTCで、/etc/localtimeはAsia/Tokyoへのシンボリックリンクとなっていた。

この方法では、システムのローカルタイムはJSTとなり、/etc/timezoneはUTCのままだが、/etc/localtimeはAsia/Tokyoとなった。

 

コメントを残す

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