普通は --tty
と --interactive
を両方指定して docker コンテナに「入る」と思うが、 --tty
を使わないとどうなるのかを試してみる。
そもそも tty とは何なのか
$ docker run --help | grep tty
-t, --tty Allocate a pseudo-TTY
分かりそうで分からない
実験
docker run --interactive alpine
プロンプトマーク
まずはプロンプトのマークがないことに気付く。 ( e.g #
$
)
何も起きておらず、画面が固まっているように見えるが、実は「何も出力されてこない」だけで、dockerコンテナの操作モードには入れている。
上下左右のキーがうまく使えないことに気付く。
^[[C^[[C^[[C
/bin/sh: : not found
空のコマンドが実行されようとしているように見えるが、たぶんコントロール文字がコマンドとして解釈されようとしている。
コマンドは打てる
echo
echo Alice
Alice
echo Bob
Bob
ls
ls var/lib
apk
misc
udhcpd
exit
exit
まとめ
tty = 標準入出力となっている端末デバイス を指定しなくてもコマンドは打てるが、端末をうまく操作できなくなる。
環境
- Docker version 18.06.0-ce, build 0ffa825
- Mac OS X High Sierra
リンク
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。