docker - 按名称过滤 docker 容器并停止它们
问题描述
我正在尝试停止以名称 app_ 开头的所有容器
我虽然这会工作:docker stop $(docker ps -f name="app_*")
,但它显示:
unknown shorthand flag: 'f' in -f
See 'docker stop --help'.
有没有办法做到这一点?
解决方案
如果您docker ps
只显示容器的 ID,您的命令将起作用。
我开始了一些这样的睡眠容器:
for i in $(seq 1 10); do
docker run --rm -d --name sleep_$i bash sleep 100000;
done
既然他们都被命名了sleep_*
,我可以这样阻止他们:
docker ps -f Name=sleep_* --format '{{.ID}}' | xargs docker stop
对于这种事情,我通常使用xargs
而不是尽可能使用 - 出于一个原因,我可以轻松地将其并行化(10 个并发执行,每个执行 3 个):$()
-n 3 -P 10
$ docker ps -f Name=sleep_* --format '{{.ID}}' | xargs -n 3 -P 10 docker stop
c58a1fc538cf
98a9358734e4
e34828d3a7d7
ffbd2ec18775
1ba1e8a304e7
5e78aecb4ed6
cf86c4ea46aa
624a7d0342c2
7cb17ece1f0a
01665a084d02
对于许多容器来说要快得多。
推荐阅读
- android - 如何在具有纵横比的每个屏幕上设置图像适合度
- angular - 访问接收到的数据的值
- c++ - 我的合并排序代码中出现垃圾值
- sharepoint - 在 PowerApps 中找不到我的表单,但可以从 SharePoint 列表中的链接访问它
- go - golan-gin api 返回无效的 URL 转义 %
- php - 使用 PHP/HTML 在表单验证中突出显示空文本框
- javascript - 无法滚动网格直到记录结束
- bunifu - Bunifu Flat Button: Selected Property Problem (取消选择本身)
- python-3.x - Pip install 在窗口上的 docker 容器中不起作用
- swift - 在 Swift 中将 GPS 元数据写入 EXIF