본문 바로가기

DevOps/Docker

[Docker] Docker 이미지 종류 (with. Python)

들어가기 앞서..

로컬에서 개발을 한 후에, 로컬 내에 도커를 사용하려고 했지만, Dockerfile을 작성할 때 slim으로만 작성하고 있었다.
 문득 여러 이미지 종류가 있는데 왜 slim만 사용했을까 라는 의문을 가지기 시작해서 도커의 이미지 종류에 대해서 공부해보려고 한다.

개인적인 공부 목적으로 작성한 것이므로, 잘못 이해하는 부분이 있을 수 있습니다.

 

 

 

1. 이미지 종류

  • name:version
  • name:version-stretch
  • name:version-buster
  • name:version-jessie
  • name:version-slim
  • name:verseion-alpine

 

1) name:version

가장 기본이 되는 이미지로 보통 사람들이 무엇을 사용해야할지 모르는 상황일 때 해당 이미지를 사용한다. (Base 이미지)
해당 버전의 이미지는 가장 최근의 안정적인 데비안 운영 체제 릴리스를 기반으로 한다.
python:3.9​

 

 

2) name:version-stretch or :version-buster or :version-jessie

데비안 계열 이미지를 베이스로 배포되었으며, 이미지가 어떤 릴리즈를 기반으로 배포되었는지를 알 수 있는 척도가 된다.
이미지 안에 몇가지 패키지를 추가로 설치하고 싶을 때 배포 시 발생하는 에러를 최소화하기 위해서는 위 태그들 중 하나를 명시해 놓은 것이다.
python:3.9-buster​

 

 

3) name:version-slim

실행하는데 필요한 푀소한의 패키지만 설치된 이미지이다. 즉 순수하게 해당 패키지(파이썬)만 실행할 수 있는 이미지를 말한다.
배포 환경에 용량제한이 심하거나 순수하게 패키지만 실행하는 환경이 아니라면 사용하지 않는 것이 좋다.
python:3.9-slim​

 

4) name:version-alpine

apline-linux를 기반으로 제작된 이미지이다. 이 이미지는 컨테이너 내부에서 사용하기 위해 특별히 제작된 운영체제이며, 이미지를 굉장히 작게 만들어서 용량이 매우 작기로 유명하다. (추천)
python:3.9-alpine​