在Ubuntu 14.04 (Trusty Tahr)上,我正在寻找一种停止运行容器的方法,我所拥有的唯一信息是Docker run命令中使用的映像名称。
是否有一个命令来查找与映像名称匹配的所有正在运行的匹配容器并停止它们?
在Ubuntu 14.04 (Trusty Tahr)上,我正在寻找一种停止运行容器的方法,我所拥有的唯一信息是Docker run命令中使用的映像名称。
是否有一个命令来查找与映像名称匹配的所有正在运行的匹配容器并停止它们?
当前回答
这只会停止所有image = "yourImgName"的容器:
sudo docker stop $(sudo docker ps | grep "yourImgName" | cut -d " " -f 1)
这将停止并删除所有image = "yourImgName"的容器:
sudo docker rm $(sudo docker stop $(sudo docker ps -a | grep "yourImgName" | cut -d " " -f 1))
其他回答
你可以使用ps命令查看正在运行的容器:
docker ps -a
从那里,您应该可以看到容器的名称以及您正在寻找的容器ID。这里有更多关于docker ps的信息。
我试图在gulp任务中包装我的Docker命令,并意识到你可以做以下事情:
docker stop container-name
docker rm container-name
这可能不适用于具有相同名称的多个容器的场景(如果可能的话),但对于我的用例来说,这是完美的。
docker stop $(docker ps -a | grep "zalenium")
docker rm $(docker ps -a | grep "zalenium")
这应该足够了。
之前的答案对我来说没用,但这个对我有用:
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>