如何停止Windows上运行的所有Docker容器?docker stop仅适用于1个容器。是否有任何命令/脚本可以停止所有容器?
docker stop
r8xiu3jd1#
您可以创建一个批处理文件(.bat 或 .cmd),其中包含以下命令:
@ECHO OFF FOR /f "tokens=*" %%i IN ('docker ps -q') DO docker stop %%i
如果要直接在控制台中运行此命令,请将%%i替换为%i,如下所示:
%%i
%i
FOR /f "tokens=*" %i IN ('docker ps -q') DO docker stop %i
在Git Bash或Bash for Windows中,您可以使用以下Linux命令:
docker stop $(docker ps -q)
对于PowerShell,该命令与Linux命令非常相似:
docker ps -q | % { docker stop $_ }
wnvonmuf2#
对于那些感兴趣的人,这可以在Powershell中使用
wwwo4jvm3#
在PowerShell中,也可以使用以下语法
docker container stop $(docker container list -q)
slhcrj9b4#
如果问题的动机是恢复Docker占用的内存(在我的情况下,这就是我到达此页面的原因),我发现唯一的方法是完全停止Docker Desktop。您可以通过右键单击通知区域中的鲸鱼图标来完成此操作(右下角)〉退出Docker Desktop。当您重新启动Docker Desktop时,所有容器都会重新出现,Docker甚至会自动将它们再次设置为向上。
insrf1ej5#
我的意见。如果你想阻止他们按某些标准过滤
docker ps -a -q --filter "name=container_name" --format="{{.ID}}" | ForEach-Object -Process {docker stop $_ }
或者如果您想停止并将它们一起删除
docker ps -a -q --filter "name=container_name" --format="{{.ID}}" | ForEach-Object -Process {docker rm $_ -f}
通过使用pipe和foreach,我避免了在特定机器上没有此类容器时返回的错误,因为docker stop或docker rm需要至少一个参数。此脚本与以下各项组合使用
docker container run image_tag --name=container_name
以便以后在您想要停止并移除容器时使用过滤器。
l3zydbqr6#
docker stop $(docker ps -aq)
停止所有运行的容器。
docker rm $(docker ps -aq)
以删除所有容器。
6条答案
按热度按时间r8xiu3jd1#
您可以创建一个批处理文件(.bat 或 .cmd),其中包含以下命令:
如果要直接在控制台中运行此命令,请将
%%i
替换为%i
,如下所示:在Git Bash或Bash for Windows中,您可以使用以下Linux命令:
对于PowerShell,该命令与Linux命令非常相似:
wnvonmuf2#
对于那些感兴趣的人,这可以在Powershell中使用
wwwo4jvm3#
在PowerShell中,也可以使用以下语法
slhcrj9b4#
如果问题的动机是恢复Docker占用的内存(在我的情况下,这就是我到达此页面的原因),我发现唯一的方法是完全停止Docker Desktop。您可以通过右键单击通知区域中的鲸鱼图标来完成此操作(右下角)〉退出Docker Desktop。当您重新启动Docker Desktop时,所有容器都会重新出现,Docker甚至会自动将它们再次设置为向上。
insrf1ej5#
我的意见。
如果你想阻止他们按某些标准过滤
或者如果您想停止并将它们一起删除
通过使用pipe和foreach,我避免了在特定机器上没有此类容器时返回的错误,因为docker stop或docker rm需要至少一个参数。
此脚本与以下各项组合使用
以便以后在您想要停止并移除容器时使用过滤器。
l3zydbqr6#
停止所有运行的容器。
以删除所有容器。