ブログ

Armadillo Base OS:コンテナのタイムゾーンを変更する方法

at_shinya.matsumoto
2022年6月2日 8時35分

本ブログではコンテナ内のタイムゾーンを変更する方法をご説明します。

下記の様にArmadillo BASE OSとコンテナ内のコマンド実行を表現します。
[armadillo] ・・・ホスト(Armadillo BASE OS)のコマンド
[container] ・・・コンテナ内のコマンド

1.デフォルトのタイムゾーン

デフォルトではホストではJSTになっておりますが、そのままコンテナを作成すると下記の様に大抵は
UTCになっています。JSTや他のタイムゾーンに変更したい場合は、設定を変える必要があります。

ホストの時刻確認
[armadillo]# date
Thu Jun  2 08:43:05 JST 2022
 
Debianコンテナ作成~コンテナ内のタイムゾーン確認
[armadillo]# podman run -it --name=test docker.io/debian:bullseye /bin/bash
[container]# date
Wed Jun  1 23:49:49 UTC 2022

2.コンテナ内のタイムゾーンの変更方法

コンテナ内のタイムゾーンの変更は通常の各OSの設定方法とは異なります。(変更しても反映されない)
方法は2種類あり、採用するコンテナイメージ(コンテナのOS)に依存します。
大抵は下記どちらかで対応可能です。

1.コンテナ作成時にTZ環境変数を渡す
2.ホストの/etc/localtimeをマウントする

以下にDebianで実施します。(Debianはどちらも対応可能)

1.コンテナ作成時にTZ環境変数を渡す<br>
[armadillo]# podman run -it --name=test_tz --env=TZ=Asia/Tokyo docker.io/debian:bullseye /bin/bash
[container]# date
Thu Jun  2 09:27:16 JST 2022
 
2.ホストの/etc/localtimeをマウントする
[armadillo]# podman run -it --name=test_mt --volume=/etc/localtime:/etc/localtime:ro docker.io/debian:bullseye /bin/bash
[container]# date
Thu Jun  2 09:29:14 JST 2022

以上で、コンテナ内のタイムゾーンの設定は完了です。