Bash
Linux
Ubuntu
docker

Docker1.11 / Ubuntu14.04 でコンテナの bash から日本語入力できない時

More than 1 year has passed since last update.

環境

$ # 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 日本語入力 できない ]

対応

~/.bashrc
$ # 対応前のロケールを確認
$ 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 はあまり関係ないというか、まっさらな状態からだとこういった設定が本来は必要なのかも。ディストロ入れると勝手に動くようになってるから、こういうのは逆に新鮮。