Docker/Docker 입문

도커 입문 06 - 모든 이미지 / 컨테이너 한번에 삭제하기

_Jin_ 2024. 11. 29.

 

 

 

 

😎 다룰 내용

도커 컨테이너와 이미지를 한번에 내리고 삭제하는 방법에 대해서 알아보자.

 

 

 

컨테이너와 이미지 삭제하는 방법 

현재 실행 중인 프로세스 목록이다.

 

 

 

그리고 이 프로세스와 이미지를 제거하려면 다음과 같은 일련의 과정이 필요하다.

 

👉 실행중인 프로세스 종료

1. docker ps
2. docker stop 컨테이너ID


👉 종료된 컨테이너 삭제

1. docker ps -a
2. docker rm 컨테이너ID


👉 이미지 삭제

1. docker images
2. docker rmi 이미지이름

 

이처럼 프로세스를 종료하고 이미지를 종료하기 위해서 모든 프로세스에 대해 위와 같은 일련의 과정을 전부 실행하기에 너무 길다.

 

 

 

모든 컨테이너 및 이미지 삭제 처리 방법 

 

좀 더 간단하게 처리하는 방법에 대해서 알아보자. ( linux 혹은 mac 용이다, git bash에서 사용해도 된다. )

👉 docker stop $(docker ps -q)
docker ps -q는 실행 중인 컨테이너의 ID만 볼 수 있는 명령어이다.
그리고 여기서 $()로 감싸면 이를 모니터에 출력하는 것이 아닌 string으로 반환한다.
따라서, 실행 중인 프로세스들을 중지한다.


👉 docker rm $(docker ps -a -q)
위와 같은 맥락에서 ps -a의 명령어를 사용하여 종료된 컨테이너들을 삭제하겠다는 의미이다.


👉 docker rmi -f $(docker images -q)
이미지들의 아이디들을 대상으로 삭제하겠다는 의미이다.

 

 

 

Window에서 컨테이너 및 이미지 삭제하는 방법

 

윈도우 환경의 cmd에서 위의 명령어를 실행하면 잘 작동하지 않는다. 

 

unknown shorthand flag: 'a' in -aSee 'docker rm --help'. 이런 오류가 뜬다.


👉 컨테이너 내리기 

FOR /f "tokens=*" %i IN ('docker ps -a -q') DO docker rm -f %i




👉 이미지 삭제하기 

FOR /f "tokens=*" %i IN ('docker images -q') DO docker rmi %i

 

 

댓글