当前位置: 首页>>技术教程>>正文


按映像名称停止Docker容器-Ubuntu

, ,

问题描述

在Ubuntu 14.04(Trusty Tahr)上,我正在寻找一种方法来停止正在运行的容器,而我仅有的信息是Docker run命令中使用的映像名称。

是否有命令查找与该映像名称匹配的所有匹配运行容器并停止它们?

最佳答案

issue 8959之后,一个好的开始将是:

docker ps -a -q --filter="name=<containerName>"

由于name是指容器而不是映像名称,因此您需要使用koekieboxanswer中提到的最新Docker 1.9 filter ancestor

docker ps -a -q  --filter ancestor=<image-name>

kiril下文所述,要删除这些容器:

stop returns the containers as well.

因此,链接stoprm将完成以下工作:

docker rm $(docker stop $(docker ps -a -q --filter ancestor=<image-name> --format="{{.ID}}"))

次佳答案

先前的答案对我不起作用,但确实如此:

docker stop $(docker ps -q --filter ancestor=<image-name> )

第三种答案

您可以通过设置容器名称来启动容器:

docker run -d --name <container-name> <image-name>

可以使用同一映像启动多个容器,因此这是启动容器的好方法。然后,您可以使用此container-name停止并附加…容器:

docker exec -it <container-name> bash
docker stop <container-name>
docker rm <container-name>

第四种答案

此代码将停止所有带有图像centos:6的容器。我找不到更简单的解决方案。

docker ps | grep centos:6 | awk '{print $1}' | xargs docker stop

甚至更短:

docker stop $(docker ps -a | grep centos:6 | awk '{print $1}')

第五种答案

停止运行容器的两种方法:

1. $docker stop container_ID

2. $docker kill container_ID

您可以使用以下命令获取正在运行的容器:

$docker ps

以下链接以获取更多信息:

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9792.html,未经允许,请勿转载。