疑似TTYを割り当てるDockerの-tオプションについて混乱しています 質問する

疑似TTYを割り当てるDockerの-tオプションについて混乱しています 質問する

このオプションは具体的に何をするのでしょうか? TTY についてたくさん読んできましたが、まだ混乱しています。 と を使わずに試してみたところ-t-iがないとユーザー入力を期待するプログラムがエラーをスローするようです-t。疑似 TTY を有効にすることが重要なのはなぜですか?

ベストアンサー1

この-tオプションは、Unix/Linux が端末アクセスを処理する方法に関係します。以前は、端末はハードライン接続でしたが、後にモデムベースの接続になりました。これらには物理デバイス ドライバー (実際の機器) がありました。汎用ネットワークが使用されるようになると、疑似端末ドライバーが開発されました。これは、プログラムに直接記述する必要なく、使用できる端末機能の理解との間に分離が生じるためです (、の man ページを参照してくださいstty) curses

したがって、それを背景として、コンテナをオプションなしで実行すると、デフォルトで stdout ストリームが作成されます (したがってdocker run | <cmd>機能します)。 を とともに実行する-iと、stdin ストリームが追加されます (したがって<cmd> | docker run -i機能します)。 を-t、通常は の組み合わせで使用する-itと、ターミナル ドライバーが追加されます。これは、プロセスと対話している場合に必要なものである可能性があります。基本的に、コンテナの起動がターミナル接続セッションのように見えます。

おすすめ記事