Docker image는 layer로 빌드됩니다 — 각 Dockerfile 명령이 layer를 생성하며, Docker는 재빌드 속도를 높이기 위해 layer를 캐시합니다. layer와 캐싱을 이해하는 것은 빠르게 빌드되고 더 작은 image를 생성하는 효율적인 Dockerfile을 작성하는 데 핵심입니다.
layer — 각 명령이 layer를 추가
각 Dockerfile 명령(FROM, RUN, COPY 등)이 읽기 전용 LAYER를 생성함:
→ layer가 쌓여 image를 형성; layer는 image 간에 캐시되고 공유됨
→ layer가 변경되지 않으면 Docker는 캐시된 layer를 재사용(재빌드를 건너뜀)
→ layer 캐싱은 재빌드를 빠르게 만듦 — 변경된 layer(와 그 이후의 것들)만 재빌드됨.
캐싱 규칙(순서가 중요함)
Docker는 layer를 순서대로 캐시함. 명령의 입력이 변경되면, 그 layer와
그 이후의 모든 layer가 재빌드됨(그 지점부터 아래로 캐시 무효화).
→ 안정적인 것은 일찍, 자주 변경되는 것은 늦게 Dockerfile에 배치할 것.
