docker の version
$ docker -v
Docker version 1.12.1, build 6f9534c
結論
TZ='Asia/Tokyo'
の環境変数を設定すれば直ります。
コマンドラインからの起動の場合
-e TZ='Asia/Tokyo'
で環境変数を設定しましょう。
$ docker run --rm -ti -e TZ='Asia/Tokyo' mongo date
Mon Sep 19 18:10:52 JST 2016
Kitematic で設定する場合
Setting > General > Environment Variables に設定しましょう。
なぜ時間を日本時間にしないといけないのか
色々要因はあるのですが、僕が引いたのは memcached でした。
expired time(time) がズレます。
expired timeが設定される時には内部的には「消えるunixtime」が保存されるようで、すごい未来になってしまっていました。
クライアントがローカル(日本時間)で、ローカル上で動いているDocker(UTC)で動作させていたのも原因だと思います。(未検証)
参考
上手くいかなかった方法
-
http://qiita.com/ganta/items/a0f34866c994ebaeef69
-
-v /etc/localtime:/etc/localtime:ro
をつけても変わらなくて泣いた - Kitematic は Volumes を変更する方法がまだない
-