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

Col*_*tes 130 ubuntu docker docker-image

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

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

Von*_*onC 176

发行8959,一个良好的开端将是:

docker ps -a -q --filter="name=<containerName>"
Run Code Online (Sandbox Code Playgroud)

由于name引用容器而不是图像名称,您需要使用更新的Docker 1.9过滤器祖先,在koekiebox答案中提到.

docker ps -a -q  --filter ancestor=<image-name>
Run Code Online (Sandbox Code Playgroud)

如下面由kiril评论,删除这些容器:

stop 也返回容器.

所以,链接stoprm将做的工作:

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


Koe*_*box 57

之前的答案对我不起作用,但这样做:

docker stop $(docker ps -q --filter ancestor=<image-name> )
Run Code Online (Sandbox Code Playgroud)

  • 那里对祖先的有趣使用(https://docs.docker.com/engine/reference/commandline/ps/#filtering)。+1 (2认同)

Jav*_*hez 41

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

docker run -d --name <container-name> <image-name>
Run Code Online (Sandbox Code Playgroud)

可以使用相同的图像来旋转多个容器,因此这是启动容器的好方法.然后你可以使用这个容器名来停止,附加......容器:

docker exec -it <container-name> bash
docker stop <container-name>
docker rm <container-name>
Run Code Online (Sandbox Code Playgroud)


Arg*_*nQQ 13

此代码将使用图像centos停止所有容器:6.我无法找到更简单的解决方案.

docker ps | grep centos:6 | awk '{print $1}' | xargs docker stop
Run Code Online (Sandbox Code Playgroud)

甚至更短:

docker stop $(docker ps -a | grep centos:6 | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)


kal*_*ari 9

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

1. $docker stop container_ID

2. $docker kill container_ID
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令运行容器:

$docker ps
Run Code Online (Sandbox Code Playgroud)

以下链接了解更多信息:


Moh*_*ess 9

这只会停止所有带有 image = "yourImgName" 的容器:

sudo docker stop $(sudo docker ps | grep "yourImgName" | cut -d " " -f 1)
Run Code Online (Sandbox Code Playgroud)

这将停止并删除所有带有 image = "yourImgName" 的容器:

sudo docker rm $(sudo docker stop $(sudo docker ps -a | grep "yourImgName" | cut -d " " -f 1))
Run Code Online (Sandbox Code Playgroud)


Ama*_*icA 6

我制作了一个/usr/local/bin/docker.stop包含图像名称的图像(假设您只运行一个)。

docker stop $(docker ps -q -f "name=$1")
Run Code Online (Sandbox Code Playgroud)