在Ubuntu 14.04 (Trusty Tahr)上,我正在寻找一种停止运行容器的方法,我所拥有的唯一信息是Docker run命令中使用的映像名称。
是否有一个命令来查找与映像名称匹配的所有正在运行的匹配容器并停止它们?
在Ubuntu 14.04 (Trusty Tahr)上,我正在寻找一种停止运行容器的方法,我所拥有的唯一信息是Docker run命令中使用的映像名称。
是否有一个命令来查找与映像名称匹配的所有正在运行的匹配容器并停止它们?
当前回答
下面是一个简洁的命令,它不需要你指定图像标签(大多数答案都需要):
Docker stop $(Docker ps -a | awk -v i="^${image_name}. "*“{如果(2美元~我){print $ 1}}”)
其他回答
你可以设置一个容器名来启动容器:
docker run -d --name <container-name> <image-name>
同一个映像可以用来启动多个容器,因此这是启动容器的好方法。然后你可以使用这个container-name来停止,附加…容器:
docker exec -it <container-name> bash
docker stop <container-name>
docker rm <container-name>
使用:docker容器stop $(docker容器ls -q——filter祖宗=mongo)
(base) :~ user$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d394144acf3a mongo "docker-entrypoint.s…" 15 seconds ago Up 14 seconds 0.0.0.0:27017->27017/tcp magical_nobel
(base) :~ user$ docker container stop $(docker container ls -q --filter ancestor=mongo)
d394144acf3a
(base) :~ user$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
(base) :~ user$
之前的答案对我来说没用,但这个对我有用:
docker stop $(docker ps -q --filter ancestor=<image-name> )
在我的例子中——filter祖宗=<image-name>没有工作,所以下面的命令为我清理Docker容器:
docker rm $(docker stop $(docker ps -a -q --filter "name=container_name_here" --format="{{.ID}}"))
我创建了一个/usr/local/bin/docker。接收映像名称的Stop(假设只有一个正在运行)。
docker stop $(docker ps -q -f "name=$1")