調べたら「コンテナ内での操作に必要」と書かれてましたが、このオプションをつけなかったらどんな支障が出るのでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
回答
このオプションをつけなかったらどんな支障が出るのでしょうか。
-t
tty(擬似端末)が割り当てられない(ホストとコンテナのstdin, stdoutが接続されない)ので、コンテナに対する操作が不便になります
。例えば、
入力で言うとホスト端末に設定されているキーバインド等が利用できません。
出力で言うとホスト端末に設定されている出力の色等が反映されません。
-i
stdinをオープンしない(入力を受け付けない)ので、コンテナに対する操作ができなくなります
。
逆に-iだけでコンテナに対する操作はできます(-tは必要ありません)
。
-iと-tをセットで覚えている人がほとんどですが、-tがなくてもコンテナは入力を受け付けるのでviだってcpだってできます。
ちなみにstdoutとstderrは-aを指定していない場合、自動で接続されます。
https://github.com/moby/moby/blob/4118e0c9eebda2412a09ae66e90c34b85fae3275/runconfig/opts/parse.go#L267
補足
以下も合わせて見ておくと良いでしょう。
https://teratail.com/questions/19477
https://teratail.com/questions/100044
投稿2018/04/14 02:56
編集2018/04/14 06:13総合スコア4258
0
このオプションをつけなかったらどんな支障が出るのでしょうか。
単純に操作を受け付けなくなります。
なので普通の用途…つまり、サーバとして動かす分には不要です。
もし、コンテナ内に侵入してターミナル操作がしたいというケース
例えば必要なプラグインやライブラリが普通のLinuxマシンとしてコマンドライン環境で調査したり、
mvやcpでログファイルとか取り出したいみたいという状況であれば-it
両方が必須となります。
https://teratail.com/questions/19477にズバリな答えが書いてあったので引用するとこんなイメージです。
投稿2018/04/13 23:28
編集2018/04/13 23:44総合スコア21326
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
オプションの意味は、
-i
は、「Keep STDIN open even if not attached」
-t
は、「Allocate a pseudo-TTY」
ですね。
Docker のマニュアル フォアグラウンド には、
(シェルのような)インタラクティブなプロセスでは、コンテナのプロセスに対して tty を割り当てるために、 -i -t を一緒に使う必要があります。
と記載がありますので、プロセスを起動してから 標準入出力で入力、出力やコマンド制御を行う必要があるなどの場合があるときに使用します。
投稿2018/04/13 23:25
編集2018/04/13 23:27総合スコア25232
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/15 13:20