附加一个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的结果存储到磁盘。

你可以尝试相同的运行它没有-t选项; 我能够做下面的样品,它正在工作

 $docker run -i ubuntu:xenial ls -l | docker run -i ubuntu:xenial wc -l $20