在Ubuntu 14.04(Trusty Tahr)上,我正在寻找一种方法来停止正在运行的容器,而我仅有的信息是Docker run命令中使用的映像名称。
是否有命令查找与该映像名称匹配的所有匹配运行容器并停止它们?
在发行8959之后,一个良好的开端将是:
docker ps -a -q --filter="name=<containerName>"
由于name
是指 _容器_而不是映像名称,因此您需要使用koekiebox的答案中提到的最新Docker
1.9过滤器祖先
。
docker ps -a -q --filter ancestor=<image-name>
如下面kiril所述,删除那些容器:
stop
也返回容器。
因此,链接stop
并rm
会完成这项工作:
docker rm $(docker stop $(docker ps -a -q --filter ancestor=<image-name> --format="{{.ID}}"))
这个命令给出了运行容器ID的列表: 是否有获取容器名称列表的命令?
我试图删除所有悬空映像,包括使用作为repo名称或标记的映像,同时使用命令进行列表。 现在,如果您尝试删除映像,您可能已经看到命令可能会失败,原因是存在无效的docker容器,这些容器突然退出并保持如下所示。 逐个移除所有容器和从属映像是很繁琐的。因此,有没有一种很好的方法来快速或自动地去除这些图像?
问题内容: Docker提供了一种列出正在运行的容器或所有容器(包括已停止的容器)的方法。 这可以通过以下方式完成: 或通过 我们有办法只列出已停止的容器吗? 问题答案: 只能使用以下命令列出停止的容器: 要么
Docker为您提供了一种列出正在运行的容器或所有容器(包括停止的容器)的方法。 这可以通过以下方式实现: 或者 我们是否有办法只列出已停止的容器?
问题内容: 从容器名称获取docker容器ID的命令是什么? 问题答案: 在Linux中: 或在OS X,Windows中: 您的容器名称在哪里。 如@llia Sidorenko所述,为避免产生误报,您可以使用正则表达式锚点,如下所示: 说明: 为了安静。仅输出ID 对所有人。即使您的容器未运行也能正常工作 用于过滤器。 容器名称必须以该字符串 开头 容器名称必须 结束 这个字符串