ブログ

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

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

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

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

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

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

ホストの時刻確認(JSTで表示される)
[armadillo]# date
Fri Apr 28 16:50:12 JST 2023

コンテナを作成してコンテナ内の時刻を確認(UTCで表示される)

コンフィグファイルを下記の様に作成
[armadillo]# cat /etc/atmark/containers/tz.conf
set_image debian:bullseye
set_autostart no
add_args -it
set_command /bin/bash
 
Debianコンテナ作成~コンテナ内のタイムゾーン確認
[armadillo]# podman_start tz
[armadillo]# podman exec tz date
Fri Apr 28 07:52:50 UTC 2023

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

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

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

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

1.コンフィグファイルでTZ環境変数を渡す
[armadillo]# cat /etc/atmark/containers/tz.conf
set_image debian:bullseye
add_args --env=TZ=Asia/Tokyo     //★この行を追加
set_autostart no
add_args -it
set_command /bin/bash

[armadillo]# podman_start tz
[armadillo]# podman exec tz date
Fri Apr 28 17:01:30 JST 2023

2.コンフィグファイルでホストの/etc/localtimeをマウントする
[armadillo]# cat /etc/atmark/containers/tz.conf
set_image debian:bullseye
add_volumes /etc/localtime:/etc/localtime:ro     //★この行を追加
set_autostart no
add_args -it
set_command /bin/bash

[armadillo]# podman_start tz
[armadillo]# podman exec tz date
Fri Apr 28 17:09:14 JST 2023

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