【发布时间】:2017-06-15 17:21:15
【问题描述】:
我正在阅读run 命令的规范并查看以下内容:
-i : 即使没有附加,也保持 STDIN 打开
和
-a=[] : 附加到
STDIN、STDOUT和/或STDERR
和
您可以指定要连接到三个标准流(STDIN、STDOUT、STDERR)中的哪一个
但我缺乏理解:“将容器连接到标准流”是什么意思?
有人可以解释一下吗?
例如-i 参数有什么作用?
【问题讨论】:
我正在阅读run 命令的规范并查看以下内容:
-i : 即使没有附加,也保持 STDIN 打开
和
-a=[] : 附加到
STDIN、STDOUT和/或STDERR
和
您可以指定要连接到三个标准流(STDIN、STDOUT、STDERR)中的哪一个
但我缺乏理解:“将容器连接到标准流”是什么意思?
有人可以解释一下吗?
例如-i 参数有什么作用?
【问题讨论】:
嗯,STDIN(标准输入)、STDOUT(标准输出)、STDERR(标准错误)是三个标准流。
通常,STDIN 表示键盘,STDOUT 和 STDERR 表示直接屏幕显示。
因此,如果您想通过键盘为容器提供一些输入,则需要将其连接到 STDIN。如果你想让你的容器在屏幕上打印结果,你可能需要将它连接到 STDOUT 和 STDERR。
否则,您的容器可以在后台运行。输入可能来自网络,输出可能存储在日志文件中。
【讨论】:
如果您想在正在运行的容器 tty 上执行任何命令,您需要为输入、输出或错误(STDIN、STDOUT、STDERR)附加标准流。
因此,即使未附加流,您也可以使用 -i 命令保持 tty 的吸引力。
或者可以直接使用 -it {running container id} /bin/bash 执行附加
【讨论】:
can keep the tty intractive .. if stream is not attached 的人们意味着什么,当 tty 是交互式的并且没有附加流时,我该怎么办?当 tty 是交互式的并且流 已附加 时会发生什么变化? tty 交互方式 - 我可以通过exec 将命令传递给容器,它会被重定向到容器 tty?