在 Ubuntu 14.04 (Trusty Tahr) 上,我正在寻找一种方法来停止正在运行的容器,我拥有的唯一信息是 Docker 运行命令中使用的映像名称。
是否有命令查找与该映像名称匹配的所有匹配的运行容器并停止它们?
原文由 Collin Estes 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Ubuntu 14.04 (Trusty Tahr) 上,我正在寻找一种方法来停止正在运行的容器,我拥有的唯一信息是 Docker 运行命令中使用的映像名称。
是否有命令查找与该映像名称匹配的所有匹配的运行容器并停止它们?
原文由 Collin Estes 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答783 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答2.9k 阅读
1 回答1.1k 阅读✓ 已解决
1 回答1.4k 阅读
如果您知道
image:tag
确切的容器版本在 issue 8959 之后,一个好的开始是:
由于
name
指的是 容器 而不是图像名称,因此您需要使用 koekiebox 的 回答 中提到的更新的 Docker 1.9 过滤器祖先。正如 kiril 在下面评论的那样,要删除这些容器:
所以链接
stop
和rm
将完成这项工作:如果您只知道图像名称(不知道
image:tag
)正如 亚历克斯詹森 在 评论 中指出的那样:
Alex 提出了一个解决方案,但是当您从同一个映像运行 多个 容器时,我设法运行的解决方案是(例如在您的
~/.bashrc
中):然后我只是调用我的 bash 会话(在采购
~/.bashrc
之后):从
alpine.*:xxx
运行的任何容器都会停止。含义:任何名称以
alpine
开头 的图像。如果您想要
^$1.*
更精确,您可能需要调整awk -v i="^$1.*"
。当然,从那里:
并且
drmi alpine
将停止 并删除 任何alpine:xxx
容器。