日本語表示

日本語対応していないdockerイメージ(公式ubuntuとか)は、いくら LANG=ja_JP.UTF-8 しても日本語表示になってくれません(localeにないので…)

英語で出ちゃってる例)

1
2
$ docker run --rm -e LANG=ja_JP.UTF-8 ubuntu date
Sun Jul 17 08:58:02 UTC 2016

言語パックをインストールすれば対応可能ですが、それをせずに、ホストのファイルをマウントすることだけで対応してみます。

日本語を表示できる例)

1
2
3
4
$ docker run --rm -e LANG=ja_JP.UTF-8 \
    -v /usr/lib/locale/locale-archive:/usr/lib/locale/locale-archive:ro \
    ubuntu date
2016年  7月 17日 日曜日 08:59:25 UTC

locale-genで生成されたファイルは_/usr/lib/locale/locale-archive_になるらしく、ホストの同ファイルをマウントするとコンテナ内でもホストと同様に日本語を表示できるようになりました。

日本時間表示

さて、上記ではUTCでしたが、今度はこれをJSTに変更します。

日本語・日本時間で表示できる例)

1
2
3
4
5
$ docker run --rm -e LANG=ja_JP.UTF-8 \
    -v /usr/lib/locale/locale-archive:/usr/lib/locale/locale-archive:ro \
    -v /etc/localtime:/etc/localtime:ro \
    ubuntu date
2016年  7月 17日 日曜日 18:01:27 JST

タイムゾーンの設定ファイルは_/etc/localtime_なので、言語ファイルの時と同様にマウントすると、コンテナ内でもホストと同じタイムゾーンで表示されました。

参考URL