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

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


当前回答

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

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/

其他回答

适用于Docker 18.09.0版本 我发现不需要格式标志

docker rm $(docker stop $(docker ps -a -q -f ancestor=<image-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}')

我创建了一个/usr/local/bin/docker。接收映像名称的Stop(假设只有一个正在运行)。

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

在我的例子中——filter祖宗=<image-name>没有工作,所以下面的命令为我清理Docker容器:

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

之前的答案对我来说没用,但这个对我有用:

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