通过图像名称停止Docker容器 – Ubuntu

在Ubuntu 14.04上,我正在寻找一种停止正在运行的容器的方法,我唯一的信息是在docker run命令中使用的映像名称。

是否有一个命令来查找匹配该图像名称的所有匹配的正在运行的容器并停止它们?

在8959问题之后,一个好的开始将是:

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

由于名称是指容器而不是图像名称,因此您需要使用更新的docker 1.9filter祖先 ,在koekiebox的答案中提到。

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

正如kiril在下面评论的那样 ,要移除这些容器:

stop返回容器。
所以链接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> 

相同的图像可以用来旋转多个容器,所以这是一个启动容器的好方法。 那么你可以使用这个容器名称来停止,附加…容器:

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

这段代码将停止所有与图像centos:6的容器。 找不到更简单的解决scheme。

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

甚至更短

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

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

 1. $docker stop container_ID 2. $docker kill container_ID 

你可以使用以下命令获得运行容器::

 $docker ps 

以下链接更多信息::

https://docs.docker.com/engine/reference/commandline/stop/ https://docs.docker.com/v1.8/reference/commandline/kill/

我做了一个/usr/local/bin/docker.stop这个图像名称(假设你只有一个正在运行)。

 docker stop $(docker ps -q -f "name=$1") 

我正在尝试将我的docker命令封装在gulp任务中,并意识到您可以执行以下操作:

 docker stop container-name docker rm container-name 

这可能不适用于你有多个具有相同名称的容器(如果可能的话),但对于我的用例是完美的。

在我的情况下 – --filter ancestor=<image-name>不工作,所以下面的命令清理docker容器对我来说:

docker rm $(docker stop $(docker ps -a -q --filter "name=container_name_here" --format="{{.ID}}"))

您可以使用ps命令查看正在运行的容器:

 docker ps -a 

从那里您应该看到您的容器的名称以及您正在查找的容器ID。 这里是关于dockerps的更多信息