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
以上で、コンテナ内のタイムゾーンの設定は完了です。