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]
모든 캐시 초기화 후 이미지를 다시 빌드하는 경우 당연히 캐시가 없어 새로 빌드되기 때문에 오래 걸리는 빌드인 경우
큰 이미지를 빌드 하는 경우 종종 캐시를 비워주거나 도커파일 레이어 최적화가 필요하다.
'os > Windows' 카테고리의 다른 글
WSL 2 설치 및 docker로 Nginx 서버 실행해보기 (0) | 2021.03.22 |
---|---|
이미 사용하고 있는 D드라이브 파티션 분할하기 (0) | 2013.04.20 |