apt-get 패키지 목록 정리 점검

패키지 설치와 목록 정리를 같은 RUN에서 처리하세요.

설명

apt-get update로 받은 패키지 목록은 /var/lib/apt/lists 아래에 남습니다. 설치 후 런타임에 필요하지 않은 목록을 유지하면 이미지 크기가 커질 수 있습니다.

이는 이미지 최적화와 운영 효율에 관한 사항입니다. 나중의 RUN에서 삭제해도 이전 레이어의 크기는 줄어들지 않으므로 설치와 정리를 같은 레이어에서 끝내야 합니다.

잠재적 영향

  • 불필요한 목록 파일로 저장소 사용량과 이미지 전송 시간이 늘어날 수 있습니다.
  • 정리를 별도 레이어에서 하면 기대한 크기 감소를 얻지 못할 수 있습니다.

해결 방법

  • apt-get install 뒤에 rm -rf /var/lib/apt/lists/*를 같은 RUN에서 실행하세요.
  • apt-get clean은 내려받은 패키지 아카이브를 정리하는 명령이므로 목록 삭제와 구분하세요. 나중에 패키지를 추가 설치해야 한다면 인덱스를 다시 갱신하세요.

예시

두 예제는 설치 후 목록 정리만 비교합니다. 패키지 버전 관리와 보안 업데이트는 별도로 유지해야 합니다.

변경 전

dockerfile
FROM ubuntu:24.04

RUN apt-get update \
    && apt-get install -y --no-install-recommends python3

변경 후

dockerfile
FROM ubuntu:24.04

RUN apt-get update \
    && apt-get install -y --no-install-recommends python3 \
    && rm -rf /var/lib/apt/lists/*

설명:

  • 변경 전: 설치에 사용한 패키지 목록이 레이어에 남습니다.
  • 변경 후: 설치가 성공하면 같은 RUN에서 목록을 삭제해 최종 레이어에 불필요한 목록이 남지 않게 합니다.

참조