【发布时间】:2018-05-14 08:03:50
【问题描述】:
我想将容器 A 中脚本的标准输出通过管道传输到容器 B 的标准输入,然后将容器 B 的标准输出通过管道传输到容器 C 的标准输入。我想知道这样做的最佳实践是什么。
选项 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 的中间文件(或数据流)。我对这些文件不感兴趣,我宁愿只将 script3.py 的结果存储到磁盘。
【问题讨论】:
标签: python-2.7 docker stdout stdin docker-volume