Skip to content

Latest commit

 

History

History
15 lines (9 loc) · 1.28 KB

docker-tty.md

File metadata and controls

15 lines (9 loc) · 1.28 KB

Docker 分配伪终端

何时使用 -t :需要有交互操作,比如执行 bash 或者 sh 等命令

何时不使用 -t :执行不需要交互的命令,比如自动调用的命令,例如一些运维操作

注意:docker-compose 的 -T 是相反的!为何存在这种差异,我不能为您提供一个明确的、出自 Docker 官方的原因,但是可以为您分析可能的原因:

  1. 不同的使用场景docker 命令常用于生产环境和单容器操作,而 docker-compose 更常用于本地开发和多容器组合环境。在开发环境中,默认启用 TTY 可能更有利于交互,因为开发者可能希望频繁地与容器内的进程进行交互。
  2. 用户反馈和习惯:工具的设计和默认行为可能是基于用户反馈和使用习惯的。docker-compose 的用户可能更倾向于在 exec 时默认有一个伪终端。

实际意义:

  1. 伪终端:有 TTY (伪终端) 的话,命令将会在一个交互式 shell 环境下执行。这意味着您可以执行诸如 bashsh 这样的 shell 命令,并与之交互。
  2. 非伪终端:没有 TTY,命令在非交互模式下运行。这对于那些不需要用户输入的命令很有用,如将日志内容输出到文件或其他非交互式任务。