Docker Image 용량을 줄여보자

Dev Smile·2024년 7월 7일
post-thumbnail

도커를 이용하여 한 서버에 여러 프로젝트를 진행 중 용량이 부족하여 도커 이미지 용량을 줄일 수 있는 방법을 찾아보았습니다.

1. Dockerfile에서 가벼운 베이스 이미지 사용

Alpine 이미지 사용

Alpine Linux는 매우 경량화된 운영체제로, 기본 이미지 크기가 5MB 이하입니다. 다음은 Alpine 이미지를 사용하는 주된 이유입니다:

  1. 경량화: 애플리케이션 컨테이너의 크기를 줄이고, 배포 속도를 높이며, 저장 공간을 절약할 수 있습니다.
  2. 보안: 최소한의 패키지만 포함하고 있어, 공격 표면이 줄어들어 보안성이 높습니다.
    단순성: 불필요한 패키지와 라이브러리를 줄여 컨테이너 이미지를 쉽게 관리하고 유지할 수 있습니다.
  3. 패키지 관리: apk 패키지 관리 시스템을 사용하여 빠르고 간편하게 패키지를 설치, 업데이트, 제거할 수 있습니다.
  4. 커뮤니티와 지원: 활발한 커뮤니티와 강력한 지원을 받아 다양한 문제에 대한 해결책을 빠르게 찾을 수 있습니다.

Python에서 slim 이미지 사용

"-slim" 이미지는 일반적인 이미지에 비해 용량이 상당히 줄어듭니다. 아래 이미지는 -slim을 사용하여 약 500MB의 감소 효과를 보여줍니다.

"-slim" 이미지는 파이썬을 실행하는데 필요한 최소한의 패키지만 설치되어 있어, 순수하게 파이썬만 실행하는 환경이 아니라면 주의해서 사용해야 합니다.

2. ".dockerignore" 를 이용

".dockerignore" 파일을 사용하여 Docker 이미지에 불필요한 파일을 제외할 수 있습니다. 이는 gitignore 파일과 유사하게 작동합니다.

  • 예시
.git
.idea
example_data/
docker-compose.yml
docker-stack.yml
Dockerfile
.docker
.dockerignore
venv/

특히, venv 디렉토리를 제외하면 상당한 용량 감소 효과를 얻을 수 있습니다.

3. 최적화 결과

베이스 이미지로 -slim을 사용하고 .dockerignore 파일을 활용한 결과, Docker 이미지의 용량을 1GB 이하로 줄일 수 있었습니다.

0개의 댓글