0

我是 docker 新手,当我玩docker exec. 我有以下问题:

Command docker exec -t 26b318e534c0 bash,已经有了 tty,这应该是交互式的吧?为什么一定要用docker exec **-it** 26b318e534c0 bash

4

1 回答 1

0

您可以在不向 tty 设备输入任何内容的情况下创建伪 tty。这允许应用程序使用 tty 设备识别的内容来生成输出(例如颜色输出)。如果您希望能够以交互方式输入该 tty,那么您需要从支持 tty 的终端(不是从 shell 脚本,也不是从某些 Windows 命令提示符)传递输入选项,以将您的控制台附加到该容器的标准输入。


作为一个简单的例子docker run,这两个命令看起来会有所不同:

docker run -t --rm debian ls -al --color=always

docker run --rm debian ls -al --color=always

第一个将有颜色输出,第二个不会,也不允许您输入ls在容器内运行的命令的输入。

于 2019-05-30T15:23:01.383 回答