본문 바로가기
인프라/Docker

[도커-이미지] 이미지 선택 기준 및 태그 설명

by code cleaner 2023. 1. 31.
반응형

도커를 설치 후 사용하다 보면 여러 이미지들을 다운로드 받고, 이미지를 직접 만들게 된다.

그러던 중 어떤 이미지를 선택하면 좋을지 기준을 찾아보고 정리하게 되었다.


결론

1. official 이미지인지 확인하기 (도커 허브 혹은 docker search $NAME 으로 확인)

2. 도커 컨테이너를 운영하는 환경 확인 후 다운로드

   (도커 컨테이너가 실행되는 서버 등의 저장공간 크기, 하드웨어(gpu 등), OS 지원이 되는 이미지인지 확인)

3. 도커 컨테이너 내부의 실행 버전과 커스터마이징 정도를 판단하여 다운로드하기

   (리눅스, 파이썬 버전 등을 고려하고, 기본 셋팅이 얼마나 되어 있는지에 따라 docker file 작성에 대한 공수가 달라진다)


하나씩 확인해 보자

 

1. 공식 이미지인지 확인하기

1) 도커 허브 사이트 : 'https://hub.docker.com/' 에서 검색하면 공식 이미지는 별도로 표시가 되어 있다.

 

2) 도커가 설치된 커맨드에서 확인해 보기 : official  부분에 OK가 있음

docker search $NAME
docker search python

 

2. 도커 컨테이너를 운영하는 환경을 확인 후 다운로드하기

   --> 현재 도커를 설치한 서버의 OS는 거의 문제된 적이 없었지만,

   --> 도커 이미지가 쌓이다보니 저장 공간의 자원 낭비가 되는 것 같다.

 

1) OS의 저장 공간 확인하기 : 리눅스(df 명령어 : 전체 공간 중 사용량 확인)

df

2) 지원 아키텍처 보기 --> 대부분은 문제없이 사용했다.

 

아래는 python 공식 이미지의 지원 아키텍처이다.

이미지 중에 세부 태그를 보면 특정 OS/ARCH에서 사용할 수 있게 되어 있다.

(base 이미지에 따라서 다르겠지만, 적어도 OS 등은 확인해 보면 좋을 것 같다. 대부분은 linux이다.)

만약에 하나씩 검색하기가 힘들면

도커 허브 사이트의 "Explore"를 클릭하면 좌측 카테고리에서 체크하여 필요한 이미지를 찾을 수 있다.

 

3. 도커 컨테이너 내부의 실행 버전과 커스터마이징 정도를 판단하여 다운로드하기

도커 컨테이너가 실행되어야 하는 버전을 확인하고, 추가로 설치하는 패키지들의 정도에 따라서 이미지를 선택할 수 있다.

데이터 분석에서 많이 사용하는 python을 기준으로 본다면

"gpu 사용 여부", "jupyter notebook 사용 여부", "tensorflow 사용 여부" 등을 기준으로 생각할 수 있다.

 

tensorflow gpu를 모델에 사용한다고 하면, 도커 컨테이너에 tensorflow gpu 환경을 셋팅해야 하는데 이미 셋팅이 잘 된 이미지가 있다면 그것을 기반으로 추가 패키지를 설치하는 것이 간편하다. 

jupyter notebook의 경우에도 마찬가지이다. 

 

* 개인적으로는 tensorflow gpu랑 jupyter notebook 도커 이미지는 아래 이미지들을 사용하였는데 셋팅도 편하고 사용도 잘 하고 있다.

docker pull jupyter/datascience-notebook 
docker pull tensorflow/tensorflow-2.7.0-gpu

첫번째는 데이터 분석에 많이 사용하는 패키지들이 이미 설치되어 있고 jupyter-notebook 서버를 띄워 사용 가능하다

두번째는 nvidia gpu 사용할 때 편했다.


도커 이미지 태그 설명 (도커 라이브러리 공식 문서 기준)

이미지명:tag 설명 python
NAME:version 공식적인 이미지 파일 
base 이미지로 주로 사용
안정적인 사용 가능
(alpine이나 slim은 충분한 테스트 권고)
python 이미지 있음
NAME:version-busybox 최소한의 기능만 있는 리눅스
임베디드 장지 사용
패키지 관리가 없음
 
NAME:version-alpine 알파인 리눅스 프로젝트 베이스
busybox+패키지관리자
슬림보다 용량이 작음
bash 없음
musl 경량화 되어 있는 c library 사용
python 이미지 있음
NAME:version-slim 기본 실행 패키지 python 이미지 있음
pip install 가능
NAME:version-windowsservercore 윈도우 서버에서 사용 python 이미지 있음
NAME:version-stretch 데비안 릴리즈 버전10(stable)  
NAME:version-buster 데비안 릴리즈 버전9  
NAME:version-jessie 데비안 릴리즈 버전8  
NAME:version-bullseye 데비안 릴리즈 unstable  
NAME:version-Bookworm 데비안 릴리즈 unstable  

 

 

 


[참조]

1. https://medium.com/swlh/alpine-slim-stretch-buster-jessie-bullseye-bookworm-what-are-the-differences-in-docker-62171ed4531d

 

Alpine, Slim, Stretch, Buster, Jessie, Bullseye, Bookworm — What are the Differences in Docker…

And which one should I choose?

medium.com

2. https://github.com/docker-library/docs

 

GitHub - docker-library/docs: Documentation for Docker Official Images in docker-library

Documentation for Docker Official Images in docker-library - GitHub - docker-library/docs: Documentation for Docker Official Images in docker-library

github.com

3. https://daaa0555.tistory.com/267

 

도커 Docker Alpine (알파인) 이미지

busybox 최소한의 기능만 있는 리눅스 임베디드장치에 사용 패키지 관리자가 없음 소프트웨어 설치는 수동으로 -> apk 패키지 관리자를 만들어 단점 보완 =Alpine alpine(알파인) 이미지 슬림보다 더 작

daaa0555.tistory.com

 

반응형