Page 26 -
P. 26

FROM에서는 기반이 되는 도커 이미지를 지정한다. 도커 파일의 기본적인 흐름은 FROM으로 지정한
               기반 이미지에 RUN이나 COPY 등의 명령을 사용해 패키지 설치나 파일 복사 등의 여러 가지 처리를
               하여 이미지를 생성하는 것이다.

               기반 이미지로 사용할 수 있는 대표적인 이미지는 표 1-1과 같다. 알파인 리눅스는 musl libc와
               busybox를 기반으로 한 경량 리눅스로, 도커 허브(Docker Hub)에 공개된 많은 컨테이너 이미
               지에서도 사용되고 있다. 그러나 musl libc는 glibc와 약간의 동작 차이가 있는 등 기존 배포판

               과 다르므로 주의해야 한다. 그 외에 파이썬(Python)이나 Node.js 등 특정 애플리케이션 런타임
                                     1
               만 포함된 Distroless 이미지  등도 좋은 대안이다. 또 초경량의 대표적인 기반 이미지로 scratch
               이미지가 있지만, 셸도 설치되어 있지 않아 디버그가 어렵다는 단점이 있다. 기술 지원이 필요

               한 경우에는 특정 환경의 기반 이미지로 레드햇(RedHat)이 지원하는 Red Hat Universal Base
               Image(UBI)도 추천한다.

                  표 1-1 도커 이미지와 이미지 사이즈
                이미지명                   이미지 사이즈
                scratch                최소

                alpine                 작다
                distroless             작다
                ubuntu                 크다
                centos                 크다

                Universal Base Image   크다


               실제로 도커 이미지를 다운로드해 사이즈를 확인해보자. scratch 이미지는 이미지 안에 아무것도

               설치되어 있지 않기 때문에 컨테이너가 생성되지 않으며, 도커에서 제공하는 사전에 정의된 이미
               지라고 보면 된다.


                # 도커 이미지 다운로드
                IMAGES=(
                  alpine:3.11
                  gcr.io/distroless/static gcr.io/distroless/base
                  gcr.io/distroless/java gcr.io/distroless/python3 gcr.io/distroless/nodejs
                  ubuntu:18.04 ubuntu:20.04
                  centos:7 centos:8



               1  https://github.com/GoogleContainerTools/distroless

         34





     쿠버네티스_04.indd   34                                                                      2021-07-20   오후 1:32:57
   21   22   23   24   25   26   27   28   29   30   31