質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

3回答

1490閲覧

dockerの-itオプションってどんな意味があるのでしょうか。

kantowebmanager

総合スコア29

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

1グッド

0クリップ

投稿2018/04/13 23:11

調べたら「コンテナ内での操作に必要」と書かれてましたが、このオプションをつけなかったらどんな支障が出るのでしょうか。

KotaYoneda👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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
xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kantowebmanager

2018/04/15 13:20

詳しくご説明くださりありがとうございます。 理解できないところもあったのですが自分で検証を繰り返して調べてみたいと思います。
guest

0

このオプションをつけなかったらどんな支障が出るのでしょうか。

単純に操作を受け付けなくなります。
なので普通の用途…つまり、サーバとして動かす分には不要です。

もし、コンテナ内に侵入してターミナル操作がしたいというケース
例えば必要なプラグインやライブラリが普通のLinuxマシンとしてコマンドライン環境で調査したり、
mvやcpでログファイルとか取り出したいみたいという状況であれば-it両方が必須となります。

https://teratail.com/questions/19477にズバリな答えが書いてあったので引用するとこんなイメージです。

-i: インタラクティブ -> 標準出力垂れ流し
-t: tty -> コンテナがコマンドを受け付ける

投稿2018/04/13 23:28

編集2018/04/13 23:44
miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kantowebmanager

2018/04/15 13:18

遅くなってすみません。 ありがとうございます。 dockerはまだ慣れないのですがこれからもっと身に付けて生きたいと思います。
guest

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
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kantowebmanager

2018/04/15 13:19

ありがとうございます。 インフラの知識がある程度必要と感じました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問