1. YumaInaura

    No comment

    YumaInaura
Changes in title
-Docker— docker run -it の -t を抜くとどうなるのか ( tty 指定なしの interactive モード )
+Docker— docker run -it の -t を抜くとどうなるか ( tty 指定なしの interactive モード )
Changes in body
Source | HTML | Preview
@@ -1,75 +1,76 @@
普通は `--tty` と `--interactive` を両方指定して docker コンテナに「入る」と思うが、 `--tty` を使わないとどうなるのかを試してみる。
## そもそも tty とは何なのか
```
$ docker run --help | grep tty
-t, --tty Allocate a pseudo-TTY
```
分かりそうで分からない
- [Pseudoterminal - Wikipedia](https://en.wikipedia.org/wiki/Pseudoterminal)
- [ttyとかptsとかについて確認してみる - Qiita](https://qiita.com/toshihirock/items/22de12f99b5c40365369)
## 実験
```
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
-## Links
+## リンク
+- [Docker —Using docker run with interactive mode but without tty ( What happens? )](https://gist.github.com/YumaInaura/aacc80bda81a35306ef2dad2469fe1bb)
- [Medium](https://medium.com/supersonic-generation/docker-using-docker-run-with-interactive-mode-but-without-tty-what-happens-c1eaae167d1d)