본문 바로가기
Linux

Docker - Image Alpine, Slim, Stretch, Buster, Jessie, Bullseye

by 올엠 2024. 2. 27.
반응형

Docker 개발을 진행하다보면, 기본 이미지 선택을 하게 되는데, 각 필요한 프로덕션에 추가로 붙는 이녀석이 무엇인지 너무 궁금하다.

Alpine, Slim, Stretch, Buster, Jessie, Bullseye

이를 이해하기 위해서는 먼저 Docker Image의 Tag 방식을 이해하는 것이 좋다.

Tag는 : 다음부터 작성된 내용이 Tag로 사용되는데, 앞에 메인이 되는 Python, Node와 같은 개발할 환경을 선택하고 이후 Tag를 통해 버전을 지정하게 된다.

가장 기본이 되는 이름은 다음과 같다.

<메인프로덕션>:<버전>

그 이후로는 추가적으로 세부적 필요에 따라서 타입을 나누어 구분하게 된다.

<메인프로덕션>:<버전>-<타입1>-<타입2>....

Alpine, Slim, Stretch, Buster, Jessie, Bullseye는 이러한 타입 구분에 사용되는 문구로써, 

Slim는 타입 2를 구분하기 위해서 사용되는 문구 이며, 

Alpine, Stretch, Buster, Jessie, Bullseye에 대해서 짧게 얘기를 해보자면, 코드 네임으로 각 Debian 버전을 의미한다고 할 수 있다.

그럼 각 Tag들의 타입 정보에 대해서 알아보도록 하자.

Stretch, Buster, Jessie, Bullseye, Bookworm

stretch, buster 또는 jessie, bullseye, bookworm은 태그가 지정된 이미지는 다양한 데비안 릴리스 의 코드명이다.

기본적으로 Python은 Debian을 기본 이미지로 활용된다. 그리고 현재 안정화된 버전이 타입을 지정하지 않으면 사용된다.

만약 특정 버전에서 동작이 필요한 경우 아래와 같이 데비안 코드네임을 통해 기본 이미지를 선택할 수 있다.

Codename Version

Stretch 8

Jessie         9

Buster 10

Bullseye(Current base image) 11

docker pull을 이용해서 이미지를 다운로드 해보면, 해쉬가 동일한것을 통해 기본 이미지를 확인할 수 있다.

docker pull --quiet python:3.10.4-slim-bullseye
docker pull --quiet python:3.10.4-slim
docker images

아래는 Debian 전체 코드네임과 배포 및 서포트 일정이다.

다음 버전 Codename은 Bookworm으로 2023년 현재 아직 개발중인 버전이므로, 안정화 기간이 필요할 것이다.

https://wiki.debian.org/DebianBookworm

Slim

Slim은 위에서 지정한 코드 네임에서 각 프로덕션(Python, Node)등에서 이 프로덕션을 실행하는데 필요한 최소한의 패키지들만 구성된 버전이라고 할 수 있다. 최소한으로 필요한 패키지만 들어있기 때문에 상당히 가볍다. 다만 개발된 프로덕션에 따라 예상하지 못한 오류가 발생할 수 있으므로 다양한 테스트가 필요하다.

Alpine(알파인)

Alpine 이미지는 컨테이너 내부에서 사용하기 위해 특별히 구축된 운영 체제인 Alpine Linux 프로젝트를 기반으로 한다. 오랫동안 작은 크기로 인해 가장 인기 있는 이미지 였다.

 

하지만, 일부 디버깅과 호환성 문제를 일으켜 Alpine 사용을 하지 못한다. 특히 Python 의 경우 Debian과 호환되도록 제작되었으며 Apline 기반 이미지로 작업하기 어렵다. 따라서 특별한 경우가 아니라면, Debian 이미지를 사용하는 것을 추천한다.

반응형