🖥

Docker— docker run -it の -t を抜くとどうなるか ( tty 指定なしの interactive モード )

2023/08/26に公開

普通は --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オープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2018-08-01

Discussion