Docker从stdin保存读取参数

代替docker-compose save命令我已经使用sed来读取YAML文件并将其传送到docker save

docker阅读器从stdin中看到了一些奇怪的行为。 例如,我有一个命令,可以find一个docker-compose YAML文件中的所有图像,并将其输出到stdout

sed -nr 's/image: "(.*)"/\1/p' docker-compose.yml | uniq | xargs -d '\n' | cat

会输出:

mysql redis python

但是,如果我试图pipe这个docker save我得到以下错误

 sed -nr 's/image: "(.*)"/\1/p' docker-compose.yml | uniq | xargs -d '\n' | docker save | gzip -c > images.tar.gz "docker save" requires at least 1 argument(s). See 'docker save --help'. Usage: docker save [OPTIONS] IMAGE [IMAGE...] Save one or more images to a tar archive (streamed to STDOUT by default) 

如何让docker从标准input读取参数?

要从William Pursell的评论中得到正确答案来完成这个工作,

以同样的方式,你得到任何命令从标准input参数: sed ... | xargs docker save sed ... | xargs docker save