답변:
문제 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}}"))
ps -a
. 제거 된 용기 ... 잘 제거 되어 더 이상 존재하지 않습니다.
이전 답변은 저에게 효과가 없었지만 이것은 효과가있었습니다.
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>
sudo docker build . -t <img-name> && sudo docker stop <container-name> || true && sudo docker run -d --rm --name <container-name> <img-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
입니까? 아니면 $
쉘 프롬프트에서 왔습니까?
이미지 이름으로 도커 컨테이너를 중지하십시오.
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}'
이미지 이름이 다른 이미지의 다른 열에 나타날 수 있으므로 문제가 있습니다
docker stop $(docker ps -a | grep "zalenium")
docker rm $(docker ps -a | grep "zalenium")
이것으로 충분합니다.
사용 : docker container stop $ (docker container ls -q --filter ancestor = 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$
간단한 AWK
접근 방식 을 원한다면 여기를 참조하십시오.
docker rm -f $(docker ps | awk '{ if($2 == "<your image name>") { print $NF}}')
$(docker ps | awk '{ if($2 == "<your image name>") { print $NF}}')
-입력 이미지를 기준으로 도커 컨테이너 이름을 인쇄합니다.
docker ps
-모든 용기를 나열
awk '{ if($2 == "<your-image-name>") { print $NF}}'
-두 번째 구문 분석 된 열은 docker ps
이미지 이름 을 제공합니다. 이미지 이름과 비교하면 print $NF
컨테이너 이름이 인쇄됩니다.
docker rm -f
컨테이너를 제거합니다
예를 들어, 우분투 이미지의 모든 실행중인 컨테이너를 제거하는 것은 다음과 같이 간단하게 수행 할 수 있습니다.
docker rm -f $(docker ps | awk '{ if($2 == "ubuntu:latest") { print $NF}}')
PS : 이미지 태그는 동등한 비교기이므로 AWK에 포함시켜야합니다.
ps
명령을 사용 하여 실행중인 컨테이너를 살펴볼 수 있습니다 .
docker ps -a
여기에서 찾고있는 컨테이너 ID와 함께 컨테이너 이름이 표시되어야합니다. 에 대한 자세한 내용은 다음과 같습니다docker ps
.