为什么docker exec结合了STDERR和STDOUT流

mag*_*ged 3 docker

这是使用输出stderr的示例,输出docker exec发送到STDOUT.

$ docker exec -t 09b24cd7fa69 ls nosuchfile 1>docker.out 2>docker.err 
$ cat docker.out 
ls: cannot access 'nosuchfile': No such file or directory
$ cat docker.err 
$
Run Code Online (Sandbox Code Playgroud)

mag*_*ged 7

问题在于-t旗帜.没有它,STDOUT和STDERR按预期工作.

  • *点头*。当您告诉 Docker 设置 TTY 时,stdout 和 stderr 都会定向到该伪 TTY;只要 FD 1 和 2 都定向到那里,就无法区分写入的内容是通过哪个单独的文件句柄进行的。 (2认同)