Docker从stdin保存读取参数

Docker从stdin保存读取参数,docker,sed,zsh,Docker,Sed,Zsh,为了代替docker compose save命令,我使用sed读取YAML文件,并将其导入docker save 我看到docker在读stdin时有一些奇怪的行为。例如,我有一个命令,可以找到docker compose YAML文件中的所有图像,并将其输出到stdout sed-nr's/image:(.*)/\1/p'docker-compose.yml | uniq | xargs-d'\n'| cat 将输出: mysql-redis-python 但是,如果我尝试将其导入docke

为了代替
docker compose save
命令,我使用sed读取YAML文件,并将其导入
docker save

我看到docker在读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的论点?

要用一个正确的答案来完成这篇文章,请参阅William Pursell的评论:


与从stdin获取参数的任何命令的方式相同:
sed…|xargs docker保存

与从stdin获取参数的任何命令的方式相同:
sed…|xargs docker save
。谢谢,这很有效。忘记了正确使用xargs。