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