[docker] 이미지 이름으로 Docker 컨테이너 중지-Ubuntu

Ubuntu 14.04 (Trusty Tahr)에서 실행중인 컨테이너를 중지하는 방법을 찾고 있는데 내가 가지고있는 유일한 정보는 Docker 실행 명령에 사용 된 이미지 이름입니다.

해당 이미지 이름과 일치하는 일치하는 모든 실행 컨테이너를 찾아 중지하는 명령이 있습니까?



답변

문제 8959 다음에 시작하는 것이 좋습니다.

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

이미지 이름이 아닌 컨테이너를name 참조 하므로 koekiebox답변 에서 언급 한 최신 Docker 1.9 필터 조상 을 사용해야합니다 .

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

kiril 에 의해 아래에 언급 된대로 해당 컨테이너를 제거하십시오.

stop 컨테이너도 돌려줍니다.

체인을 연결 stop하고 rm작업을 수행합니다.

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모든 컨테이너를 중지 합니다 . 더 쉬운 해결책을 찾지 못했습니다.

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

또는 더 짧습니다.

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


답변

컨테이너 실행을 중지하는 두 가지 방법 :

1. $docker stop container_ID

2. $docker kill container_ID

다음 명령을 사용하여 컨테이너를 실행할 수 있습니다.

$docker ps

자세한 내용은 다음 링크를 참조하십시오.


답변

Docker 버전 18.09.0의 경우 형식 플래그가 필요하지 않습니다.

docker rm $(docker stop $(docker ps -a -q -f ancestor=<image-name>))


답변

이미지 이름으로 도커 컨테이너를 중지하십시오.

imagename='mydockerimage'
docker stop $(docker ps | awk '{split($2,image,":"); print $1, image[1]}' | awk -v image=$imagename '$2 == image {print $1}')

이미지 이름과 태그로 도커 컨테이너를 중지하십시오.

imagename='mydockerimage:latest'
docker stop $(docker ps | awk -v image=$imagename '$2 == image {print $1}')

이미지를 만든 경우 이미지에 레이블 을 추가하고 레이블 별로 실행중인 컨테이너를 필터링 할 수 있습니다.

docker ps -q --filter "label=image=$image"

신뢰할 수없는 방법

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

항상 작동하지는 않습니다

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

이미지 이름이 아닌 컨테이너 이름으로 필터

docker ps | grep <image-name> | awk '{print $1}'

이미지 이름이 다른 이미지의 다른 열에 나타날 수 있으므로 문제가 있습니다