본문 바로가기
🛠 Infrastructure/- Docker & Kubernetes

[Docker] docker system prune 으로 도커에서 사용하지 않는 모든 리소스 삭제하기

by Wonit 2021. 6. 11.

Docker 를 이용하다 보면 우리는 여러 대의 컨테이너들을 다루게 된다.

 

여러 컨테이너를 다루면서 발생하는 문제는 사용하지 않는 리소스들에 대한 관리 이다.

 

사용하지 않는 리소스라면 무엇일까?

 

예를 들어서 우리가 애플리케이션 하나를 개발했고, 이를 배포한다고 가정했을 때 해당 애플리케이션을 컨테이너화 한 이미지들을 바로바로 삭제하지 않았다고 생각해보자.

 

그럼에 따라서 자연스럽게 컨테이너나 Docker Network 는 Host PC 에 쌓이게 된다.

 

도커를 많이 사용하는 개발자일 수록 Host PC 성능에 많은 영향을 미치게 된다.

 

이 때 사용할 수 있는 명령어가 바로 system의 prune 명령어이다.

 

prune

 

prune은 가지 치기와 같이 불필요한 무언가를 제거하는 것 쯤이라고 생각하면 된다.

 

이 prune 명령어를 통해서 사용하지 않는 컨테이너 리소스를 모두 없애보자.

 

$ docker system prune

WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all dangling build cache

Are you sure you want to continue? [y/N] y

docker system prune 을 치면 기본적으로 WARNING이 뜨게 된다.

 

이는 prune 명령어를 조심스럽게 사용해야 한다는 것을 의미하고 docker 가 알려주는 것 처럼 많은 불필요한 리소스를 삭제한다.

 

  1. 멈춰있는 모든 컨테이너
  2. 최소 한 개의 컨테이너에서 사용되지 않는 네트워크
  3. 매달려있는 (불필요한, 부수적인) 이미지
  4. 매달려있는 (불필요한, 부수적인) 빌드 캐시

 

이를 염두하고 만약 삭제하길 원한다면 y 를 쳐서 삭제를 진행하면 다음과 같이 많은 컨테이너들이 삭제되는 것을 볼 수 있다.

 

 

 

나의 경우는 총 8.3 GB나 삭제되었다.

 

 

댓글0