Docker从stdin保存读取参数

时间:2017-05-01 17:20:54

标签: docker sed zsh

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

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

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

将输出:

mysql redis python

但是,如果我尝试将其输入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从stdin读取其参数?

1 个答案:

答案 0 :(得分:0)

要在William Pursell的评论中以正确的答案完成此事:

与从stdin获取参数的任何命令相同:sed ... | xargs docker save