モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

dockerでCtrl-pでヒストリをのぼれない

dockerに

$ docker exec -it examplecontainer /bin/bash

で入って色々と作業をしている時に、「Ctrl-p」でヒストリをのぼろうとすると、1回では動かずに2回押すとやっと動くのだけども2つさかのぼってしまうという状況になっていました。


他に、下で書いたipythonで結果がすぐに表示されない、という問題もあったため、バッファリングされている問題?と思ったり、他にもちょっとヒストリの結果が崩れるときがあり、ターミナルのサイズとかがおかしく設定されているのだろうか、と思ったりしました。


が、そんな話をtwitterでつぶやいてたら@tmtmsさんに教えてもらえました…

というわけで、dockerだとデフォルトで「Ctrl-p q」でコンテナを抜ける用になっているため、「Ctrl-p」がエスケープシーケンスとして扱われているので、それでこんな状況が起きてしまうのでした。


これはdocker 1.10以降だと設定で変更できるとのこと。


docker で Ctrl-p 2回押し問題 (detach-keys の問題) を解決するには - Qiita
http://qiita.com/takahiroki/items/60ec916383025160fbb8


自分は下記のようにして「Ctrl-[」の後「q」に指定してみました。

docker toolboxの場合
~/.docker/config.json
に下記行追記

"detachKeys": "ctrl-[,q"


これで無事に「Ctrl-p」一回でちゃんとヒストリをのぼれるようになりました。


とみたさんありがとうございます!