핵심내용
도커 컨테이너를 정리하는 방법에 대해서 다루고자 한다.
일단 정지용
도커 컨테이너를 삭제하기 전에 우선, 도커를 먼저 정지해야 한다. 왜냐하면, stop후 삭제하는 과정을 통해 삭제하는데 필요한 충분한 시간을 벌 수 있기 때문이다. (다만, 정지를 하지 않고도 삭제를 강제할 수 있기는 하다.)
그래서, 컨테이너를 삭제하기 전에 도커를 먼저 정지해야 한다.
1. 하나의 컨테이너를 정지하는 경우
docker stop [OPTIONS] CONTAINER [CONTAINER...]
컨테이너 아이디나, 혹은 이름을 넣어준다.
2. 여러개의 컨테이너를 정지하는 경우
docker stop container1 container2
컨테이너 이름이나 아이디를 띄어쓰기로 입력해준다.
3. 특정 이미지와 연관된 모든 컨테이너 정지
docker ps -q --filter ancestor=IMAGE_NAME | xargs docker stop
docker ps -q : 컨테이너 아이디 리스트만을 출력해준다.
--filter: 조건에 따라 필터링 수행
ancestor: 필터링 조건 중 하나로, 입력값으로 주어진 이미지를 공유하는지 확인
xargs: 명령의 출력을 취하여 다른 명령의 인수로 전달해준다.
4. 모든 컨테이너 정지
docker ps -q | xargs docker stop
컨테이너 삭제
이제, docker ps를 해도 실행되고 있는 컨테이너가 노출되지 않을 것이다.
docker ps -a
하지만, 위와 같이 docker ps -a 옵션을 주어 출력하면, 중지했던 컨테이너들이 다시 표기 된다. 왜일까? docker ps의 기본 옵션은 running중인 컨테이너 들이기 때문이다.
1. 하나의 컨테이너 삭제하기
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rm 명령어에 컨테이너 아이디나 이름을 입력해서 컨테이너를 삭제할 수 있다.
2. 실행중인 컨테이너 강제로 삭제하기
docker rm --force container1
--force 옵션을 이용해서 현재, 실행중인 컨테이너를 강제로 삭제하도록 할 수도 있다.
3. 정지한 모든 컨테이너 삭제하기
docker rm $(docker ps --filter status=exited -q)
docker ps --filter status=exited -q | xargs docker rm
$(): 명령어의 실행 결과이다.
status: --filter 옵션의 종류중 하나로 말 그대로 컨테이너의 상태를 의미한다.
exited: 종료 됐다는 뜻이다.
정지와 마찬가지로, docker 명령어의 아웃풋 값을 새로운 명령어의 인풋으로 넣어주는 방식을 취한다.
여기까지, 진행하고 나면 docker ps -a 명령어를 입력해도 아무런 컨테이너가 보이지 않는다.
이미지 삭제
아직, 끝이 아니다. 내려받은 이미지는 여전히 어딘가에서 공간을 차지하고 있을 것이다. 이미지는 docker rmi 명령어를 이용하여 지울 수 있다.
docker rmi [OPTIONS] IMAGE [IMAGE...]
명령어 응용 방식은 위와 동일하다. 위 방식을 응용해서 동시에 여러 이미지를 삭제할 수 있다.
'딥상어동의 딥한 프로그래밍 > 엔지니어링' 카테고리의 다른 글
데이터 마트에서는 뭘 파나요?(feat. OLTP, OLAP) (14) | 2023.03.26 |
---|---|
[Bigquery] 지난 며칠 간 Python과 연동하여 사용한 소감 (0) | 2023.01.18 |
[ubuntu] ssh connection timed out (0) | 2022.08.16 |
[fast api] - uvicorn으로 api서버 실행하기 (0) | 2022.08.15 |
오라클 클라우드(2) - VM 생성기(Compartment, VCN) (0) | 2022.08.07 |
제 블로그에 와주셔서 감사합니다! 다들 오늘 하루도 좋은 일 있으시길~~
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!