docker - 对 docker 的 -i "Keep STDIN open even if no

-i 标志被描述为“即使没有附加也保持 STDIN 打开”,但是 Docker run reference还说:

If you do not specify -a then Docker will attach all standard streams.

所以,默认情况下,stdin 是附加的,但没有打开?我认为附加STDIN但未打开时没有任何意义,对吧?

最佳答案

The exact code与该文档相关的是:

// If neither -d or -a are set, attach to everything by default
if len(flAttach) == 0 && !*flDetach {
    if !*flDetach {
        flAttach.Set("stdout")
        flAttach.Set("stderr")
        if *flStdin {
            flAttach.Set("stdin")
        }
    }
}

与:

flStdin := cmd.Bool("i", false, "Keep stdin open even if not attached")

换句话说,如果设置了-i附加标准输入。

        if *flStdin {
            flAttach.Set("stdin")
        }

从这个意义上说,“所有”标准流并不准确。

如下所述,该代码(由文档引用)has since changed to :

cmd.Var(&flAttach, []string{"a", "-attach"}, "Attach to STDIN, STDOUT or STDERR")

-a 不再是“附加所有流”,而是 "specify which streams you want attached" .

var (
    attachStdin  = flAttach.Get("stdin")
    attachStdout = flAttach.Get("stdout")
    attachStderr = flAttach.Get("stderr")
)

-i remains a valid option :

if *flStdin {
    attachStdin = true
}

关于docker - 对 docker 的 -i "Keep STDIN open even if not attached"感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36563630/

相关文章:

linux - nginx/apache重定向vps上docker容器上的输出端口

android - 如何使用保存实例状态保存 Activity 状态?

android - 当 Activity 在 Android 中启动时,如何阻止 EditText

android - 如何在 Android 的 ListView 中延迟加载图像

android - Eclipse Android 插件中的 "Debug certificate

android - 为什么安卓模拟器这么慢?我们如何加快Android模拟器的速度?

android - 如何在 TextView 中水平和垂直居中文本?

android - 如何以编程方式关闭/隐藏 Android 软键盘?

android - 是否有唯一的 Android 设备 ID?

docker - Dockerfile 中的开发依赖项或用于生产和测试的单独 Dockerfile