Windows cmd docker 命令管道

Mat*_*ttJ 3 windows powershell cmd docker

我在 Windows CMD 中找到了有关管道命令的说明:

“管道”将程序或命令的输出重定向到第二个程序或命令。

句法:

Command1 | Command2
Run Code Online (Sandbox Code Playgroud)

[来源](在最底部)

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

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

docker start $(docker ps -a -q -f "status=exited")
Run Code Online (Sandbox Code Playgroud)

Ans*_*ers 5

您可以通过管道-i传输到 docker 容器( ),但不能通过管道将参数传输到 docker 命令本身。

在 PowerShell 中使用循环来启动已停止容器的列表:

docker ps -a -q -f "status=exited" | ForEach-Object { docker start $_ }
Run Code Online (Sandbox Code Playgroud)

在 CMD 中,使用循环来启动已停止容器的列表:

for /f "tokens=*" %i in ('docker ps -a -q -f "status=exited"') do docker start %i
Run Code Online (Sandbox Code Playgroud)