隙あらば寝る

うぇぶのかいしゃではたらくえんじにあがかいています

dockerコンテナのタイムゾーンを簡単に設定する

dockerを使っていると、コンテナ内の時間がUTCになっていてアレっとなることがよくある。

最初はわざわざdocker build時にtimezoneを設定していたが、ある時/etc/localtimeをvolume mountすればいいじゃないかと気づいた。

docker run -it --rm -v /etc/localtime:/etc/localtime:ro <image>

という感じ。これでだいたい満足していたが、ふと検索していたら

github.com

を見かけた。

まとめるとTZ環境変数を使えということらしい。

$ docker run -it --rm ubuntu:16.04 date 
Thu Jan 12 13:45:25 UTC 2017
$ docker run -it -e TZ=Asia/Tokyo --rm ubuntu:16.04 date
Thu Jan 12 22:42:20 JST 2017

コンテナのTZ環境変数にそのままタイムゾーンを入れてやれば良い。

なるほど便利。