docker 에서는 layer 를 쌓을 때 cache 를 이용해서 이미지 빌드와 컨테이너 생성 시간을 줄인다.
이 cache 데이터는 이미지와 컨테이너를 제거하더라도 로컬에 남아있다.
cache 가 계속 쌓이는 것이 장점이 크긴 하지만 단점도 있다.
때로는 cache 로 인해 도커파일을 수정해도 변경사항이 반영이 안 되는 경우도 있고, ( 사실 이 경우는 docker-compose build --no-cache 로 해결 가능 )
더 큰 문제는 layer 마다 cache 가 생기기 때문에 도커를 많이 쓴다면 cache 파일들의 크기가 생각보다 꽤 커진다.
따라서 종종 캐시를 없애주는 것이 좋다.
캐시 삭제 명령어는 아래와 같다
$ sudo docker system prune -a
Bash
복사
커맨드를 입력하면 경고문구가 뜨고 그래도 진행할 것인지 물어본다
Password:
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N] y
Bash
복사
Deleted Networks:
mone-server_default
Deleted Images:
untagged: drf-advanced-app:latest
deleted: sha256:278aae064a802a3a19a5ee418ca28d28ada69e80b6cec49e90c6ffa61fee47cd
untagged: postgres:13-alpine
untagged: postgres@sha256:46e0328440ac2b9bb0e22cd07eba248a95f1e575256850a0ef98995891bb9af6
deleted: sha256:72a206914ca069907cadf35439aef7badd284a521f35a2ee25184b0e138040cf
deleted: sha256:fd25930ebad02d40a71654e3cc9e7a298db0c4c43529e821892ff57e83c960a3
deleted: sha256:a1dbef0b9091eb30752bdcb15fa3cacdc0af30136aacef320518b1d83c2947d6
deleted: sha256:65d40097fa6b057f58f718e3cc8906dce9f079bc7ed9e4dd88bd50ebb79afe0c
deleted: sha256:7de4b1055b48f80acbb0a24bb0bebf3647a6722823a2749ca7573858bc5683fa
deleted: sha256:62de7854b1105d2a4a28a1ebab69195b0682b6590e2a5e2ca7e56fcaa6def1f2
deleted: sha256:1a0e0dbd5e3ce49299eee3d260044c67ba0c5519e2286b1a047189cd6a9558d0
deleted: sha256:49e96a543e38315ed20c13de2e5216eae60fc71ae49af0a789af7ae0d0ac806b
deleted: sha256:0a24540c1e5a47e5a8116c43151cb45c985f7a65afe5d4d65127d9c6fea2ffcf
Deleted build cache objects:
rg3sqdrdqsm32ass958vqffgj
8lllh2xc79rmyoqzdeo6328sv
yvuhfako7a1idtwim4vrv1ggz
4e4hjlad7edibiaz6dg12f7tw
zfkabcdxzg18fki84mrmhjj91
zyhmswtw24f8l08g9879f5q9r
# 생략 .....
Total reclaimed space: 9.168GB
Bash
복사
캐시 데이터라서 가볍게 보았는데 무려 9GB 를 차지하고 있었다(..!)