Windows cmd中的docker命令管道

3
我在Windows CMD中发现了有关管道命令的指示:

The "pipe" redirects the output of a program or command to a second program or command.

Syntax:

Command1 | Command2

[来源](在底部)

然而,docker ps -aq | docker start或任何类似的组合只会返回错误。

唯一有效的启动所有停止容器的组合在PowerShell中有效。

docker start $(docker ps -a -q -f "status=exited")

1
PowerShell与cmd并不完全相同。您具体遇到了哪些错误? - vonPryz
是的,我明白,只是我大部分的工作都是通过CMD完成的,每次需要使用docker时打开PowerShell似乎很麻烦。我得到了“'dokcer start'需要至少1个参数。” -> docker ps -aq | docker start - MattJ
错误信息表明,docker程序不从stdin读取数据,必须指定显式的命令行参数。 - lit
1个回答

6
你可以将内容导入到Docker容器-i),但是无法将参数导入到docker命令本身。
在PowerShell中,使用循环启动已停止容器的列表:
docker ps -a -q -f "status=exited" | ForEach-Object { docker start $_ }

在CMD中使用循环以启动已停止容器列表:
for /f "tokens=*" %i in ('docker ps -a -q -f "status=exited"') do docker start %i

PowerShell没问题:) 我正在寻找Windows CMD的解决方案。 - MattJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接