这是一个有效的命令:
$ echo 'hi there' | docker run -i ubuntu cat
hi there
Run Code Online (Sandbox Code Playgroud)
这是一条响应错误消息的命令:
$ echo 'hi there' | docker run -it ubuntu cat
the input device is not a TTY
Run Code Online (Sandbox Code Playgroud)
我想弄清楚这里到底发生了什么。不仅仅是“删除 -t 它将被修复”。
我知道docker run
's-t
选项代表“分配伪 TTY”,我已经阅读了 TTY 代表什么的历史概述,但这并没有帮助我理解这里违反了什么样的合同。