環境
$ # Docker
$ docker --version
Docker version 1.11.1, build 5604cbe
$ # コンテナ(Ubuntu)
$ uname -a
Linux d7e331979eca 3.16.0-71-generic #92~14.04.1-Ubuntu SMP Thu May 12 23:31:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
症状
コンテナにアタッチ後、bash から日本語入力しても表示/入力できない。
調査
Google [ docker ubuntu bash 日本語入力 できない ]
対応
$ # 対応前のロケールを確認
$ locale
$ # 言語パックのインストール
$ sudo apt-get install language-pack-ja-base language-pack-ja
$ # シェル起動時に環境変数 LANG を再設定
$ # .bashrc の末尾に追記。
$ vi ~/.bashrc
...
export LANG='ja_JP.UTF-8'
$ # 終わったらログアウト/ログイン
$ # locale を確認
$ locale
.bashrc ではなく .profile や .bash_profile に書くのが適当だけど Docker はアタッチ後にデフォルトでそれらを読み込まない。オプション付ければいいらしい。Docker には init プロセスがないとか。だからログインが「発生」しないのかな。https://teratail.com/questions/19382
Docker はあまり関係ないというか、まっさらな状態からだとこういった設定が本来は必要なのかも。ディストロ入れると勝手に動くようになってるから、こういうのは逆に新鮮。