본문 바로가기

os/Windows

Windows 10에서 WSL2 docker run 또는 build 실행 시 디스크 용량 계속 증가 시 초기화 방법

wsl2에서 docker desktop 사용 중에 갑자기 C: 드라이브 디스크 용량이 없다는 윈도우 알림창이 떠서 뭐가 문제인지 살펴보았다.

확인결과 wsl볼륨마운팅 폴더가 80GB 차지하고 있었다. 구글링해보니 도커 빌드 캐시 문제라는 글이 꽤 있다.

개발환경에 쓰고있는 Dockerfile이 레이어로 추가되어 캐싱되는 COPY, RUN, CMD 등을 쓰기도 하거니와 사용중인 패키지가 워낙 커서 발생되는 문제. 내가 잘못했지만 80기가는 참을 수 없다.

 

도커파일 사용방법 및 레이어 최적화는 아래 공식 문서 참고

 

도커 캐시 삭제방법 검색..

$ docker builder prune --help

Usage:  docker builder prune

Remove build cache

Options:
  -a, --all                  Remove all unused build cache, not just dangling ones
      --filter filter        Provide filter values (e.g. 'until=24h')
  -f, --force                Do not prompt for confirmation
      --keep-storage bytes   Amount of disk space to keep for cache

 

 

모든 캐시 삭제 진행했다.

$ docker builder prune --all

 

아래와같이 system prune 명령어로 모든 리소스를 삭제하는 방법도 있다.

데이터를 포함하는 볼륨은 매우 중요하므로 system prune 시 삭제되지 않는다. --volume 옵션을 추가해야 삭제됨.

$ 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]

 

모든 캐시 초기화 후 이미지를 다시 빌드하는 경우 당연히 캐시가 없어 새로 빌드되기 때문에 오래 걸리는 빌드인 경우

 

큰 이미지를 빌드 하는 경우 종종 캐시를 비워주거나 도커파일 레이어 최적화가 필요하다.