3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker exec -it "container id or container name" /bin/bashの-itについて

Last updated at Posted at 2019-02-02

概要

dockerのコンテナ内に入る際に何とな-itオプションを使っていたが気になったので調べた!
学んだ事をまとめます。

-iについて

docker exec --help で調べる。

スクリーンショット 2019-02-02 13.12.19.png

「STDINがアタッチされていないときでもSTDINをオープンにし続けるよ!」って事
STDINが分からないのでググってみた

wikipediaによると

スクリーンショット 2019-02-02 13.17.49.png 「コンピュータプログラミングでは、標準ストリームは、実行開始時にコンピュータプログラムとその環境との間に事前に接続された入出力通信チャネルです。 3つの入出力(I / O)接続は、標準入力(stdin)、標準出力(stdout)、および標準エラー(stderr)と呼ばれます。」 つまりSTDINは"Standard input(標準入力)"の略である。 

よって-iオプションをdocker exec "container id or container name" /bin/bashに加える事によって指定したコンテナ内で、標準入力を受け付けられるとゆうことか

docker exec -t "container id or container name" /bin/basを試してみる

試しに-iオプションなし、つまりdocker exec -t "container id or container name" /bin/bashでコンテナの中に入り色々なコマンドを試してみた。
スクリーンショット 2019-02-02 15.03.36.png

結果、入力に対するレスポンスが何も得られなっかた。
よって-iオプションはコンテナ内で標準入力を受け付けられるようにするオプションであるとわかった。

-tについて

docker exec --helpで調べる
スクリーンショット 2019-02-02 14.20.32.png

「pseudo-TTYを割り当てるよ。」
pseudo-TTYが分からないのでググってみた。
以下のサイトがわかりやすかった
https://unix.stackexchange.com/questions/21147/what-are-pseudo-terminals-pty-tty
上記サイトによるとpseudo-TTYは「ターミナルのような機能をもつデバイス」とゆう意味らしい
つまり-tオプションは「ターミナルのような機能をもつデバイスを割り当てるよ!」って事

docker exec -i "container id or container name" /bin/bashを試してみる

試しに-tオプションなし、つまりdocker exec -i "container id or container name" /bin/bashでコンテナの中に入り色々コマンド試してみた
スクリーンショット 2019-02-02 14.46.16.png

結果は上記のように標準入力に対するレスポンスは帰ってくるが,docker exec -it "container id or container name" /bin/bashと入力すれば表示されるはずの"root@コンテナ ID:/フォルダ名#"が表示されなくなった。
なのでコードがかなり読みづらかった。

終わりに

最初は -it の意味が全く分からなかったが、今回の調査でこんなに重要な機能を提供してくれるのか!と感動した。
これからはオプションが出てきた際には曖昧にせずちゃんと調べようと思った。

この記事が誰かの参考になってくれれば幸いです。

何か間違った記述があった場合、指摘していただけたら嬉しいです。🙇‍♂️

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?