Distroless 이미지

Jmnote (토론 | 기여)님의 2024년 3월 3일 (일) 11:54 판 (→‎static과 base)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

"Distroless" Container Images
Distroless 컨테이너 이미지, Distroless 이미지, 디스트로리스
  • 애플리케이션을 실행하는 데 필요한 최소한의 런타임과 라이브러리만 포함한다.
  • 애플리케이션과 해당 런타임 종속성만 포함된다.
  • 표준 Linux 배포판에 흔히 있는 패키지 관리자, 쉘, 기타 프로그램이 들어 있지 않다.
  • Google이 제공한다.
# Start by building the application.
FROM golang:1.17-bullseye as build

WORKDIR /go/src/app
ADD . /go/src/app

RUN go get -d -v ./...

RUN go build -o /go/bin/app

# Now copy it into our base image.
FROM gcr.io/distroless/base-debian11
COPY --from=build /go/bin/app /
CMD ["/app"]

2 static과 base[ | ]

구분 static ★ base
용도 정적으로 연결된 바이너리 실행용 동적으로 연결된 애플리케이션 실행용
라이브러리 동적 링크 라이브러리(glibc, musl 등) 미포함 glibc 및 필수 동적 라이브러리 포함
보안 제한된 실행환경 (최고 보안) 라이브러리 포함으로, 약간 유연한 실행환경
이미지 크기 매우 작음 (최소 크기) 라이브러리 포함으로, static보다는 큼
  • 일반적으로 base 이미지라고 하면 가장 작은 이미지라고 할 수 있는데, Distroless에서는 그렇지 않다.
  • 동적 연결 라이브러리가 필요하지 않다면 static 사용을 우선 고려하자.

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}