Tag: stdout

golang – 使用io.Copy从bufio.Reader复制到STDOUT的怪异字符

我有一个应用程序,附加到一个docker容器得到它的输出使用docker库提供的containerAttach()函数。 该函数返回一个带有指向bufio.Reader的指针的HijackedResponse结构体。 我试图将文本从bufio.Readerstream到标准输出,并获取写入标准输出的string中的意外字符。 代码: _, err := io.Copy(os.Stdout, hijackedResponse.Reader) 预期产出: Refreshing Terraform state in-memory prior to plan… The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage. 实际产出: 6Refreshing Terraform state in-memory prior to plan… =The refreshed state will be used to calculate this […]

附加一个docker集装箱的标准输出到另一个docker集装箱的标准input

我想将容器A中的脚本的标准输出传递给容器B的标准input,然后将容器B的标准输出传递给容器C的标准input。我想知道做同样的最佳做法是什么。 选项1 docker run -it ImageA python script1.py | docker run -it ImageB python script2.py | \ docker run -it Image3 python script3.py 选项2 使用共享卷来存储可被后续容器访问的数据。 docker run -it -v /home/shared_volume:/container1_home/shared_volume python script1.py docker run -it -v /home/shared_volume:/container2_home/shared_volume python script2.py docker run -it -v /home/shared_volume:/container3_home/shared_volume python script3.py 理想情况下,我宁愿不使用共享卷。 script1.py和script2.py的输出产生大约数TB的中间文件(或数据stream)。 我对这些文件不感兴趣,我宁愿将script3.py的结果存储到磁盘。