설명
dnf install을 실행하면 패키지 메타데이터와 캐시 파일이 이미지 레이어에 남을 수 있습니다. 런타임에 필요하지 않은 캐시는 이미지 크기와 저장·전송 비용을 늘립니다.
나중의 RUN에서 삭제해도 앞선 레이어의 크기는 줄지 않습니다. 설치와 정리를 같은 레이어에서 완료해야 해당 캐시가 최종 레이어에 남는 것을 줄일 수 있습니다.
잠재적 영향
- 이미지 저장 공간과 전송·배포 시간이 늘어날 수 있습니다.
- 불필요한 캐시가 포함되어 이미지 관리 부담이 커질 수 있습니다.
해결 방법
- dnf install 뒤에 dnf clean all을 같은 RUN 구문에서 실행하세요.
- 최종 이미지에 남은 캐시와 크기를 확인하세요. 캐시 정리는 설치된 패키지의 보안 업데이트를 대신하지 않습니다.
예시
기존 Fedora 40 예제를 유지한 명령 비교입니다. 실제 빌드에는 지원되는 베이스 이미지와 저장소를 선택하고 nginx 패키지가 제공되는지 확인하세요.
변경 전
dockerfile
FROM fedora:40
RUN dnf install -y nginx
변경 후
dockerfile
FROM fedora:40
RUN dnf install -y nginx \
&& dnf clean all
설명:
- 변경 전: 설치 후 캐시가 이미지에 남을 수 있습니다.
- 변경 후: 설치가 성공하면 같은 RUN에서 dnf 캐시를 정리합니다. 앞선 레이어에서 생성한 파일의 크기까지 줄이지는 않습니다.