방명록
- [DOCKER] Scratch 이미지에 대해서 알아보자2024년 08월 22일 10시 50분 17초에 업로드 된 글입니다.작성자: 코딩백구반응형
Scratch 이미지란?
Docker 에서 Scratch 이미지는 가장 최소화된(base) 이미지로, 완전히 빈 상태의 이미지를 의미한다.
Docker 에서 사용 가능한 기본 이미지는 대부분 운영 체제의 기본 패키지를 포함하고 있지만, Scratch 는 그런 패키지조차 포함하지 않은 순수한 빈 상태이다.
특징
1. 크기
- Scratch 이미지는 사실상 크기가 0인 상태이다.
- 따라서 이 이미지를 사용하면 크기를 최대한 작게 유지할 수 있다.
2. 구성 요소 없음
- Scratch 이미지에는 shell, 패키지 관리자, 심지어는 기본적인 유틸리티도 포함되어 있지 않으며, 말 그대로 아무것도 없는 상태.
3. 사용 사례
- 일반적으로 Go, Rust, C 같이 정적으로 컴파일 된 바이너리를 실행하는 데 사용된다.
- 이러한 바이너리는 실행에 필요한 모든 것을 내부에 포함하고 있어 추가적인 라이브러리나 도구가 필요 없다.
예시
다음은 Go 로 작성된 간단한 어플리케이션을 Scratch 이미지를 기반으로 Docker 컨테이너로 빌드하는 과정이다.
# Step 1: Go 애플리케이션 빌드 FROM golang:1.18 AS builder WORKDIR /app COPY . . RUN go build -o myapp # Step 2: Scratch 이미지를 사용하여 애플리케이션을 포함한 컨테이너 빌드 FROM scratch COPY --from=builder /app/myapp /myapp ENTRYPOINT ["/myapp"]
이 Dockerfile 을 보면 builder 단계에서는 Go 어플리케이션을 빌드하고,
최종 단계에서 Scratch 이미지를 사용하여 빌드된 어플리케이션만을 포함한 컨테이너를 생성한다.
따라서 이 컨테이너에는 불필요한 파일이 없고, 오직 실행 파일(myapp)만 포함하고 있어 매우 가볍다.
반응형'Docker' 카테고리의 다른 글
[Docker] Docker Network 고정 IP 설정 (0) 2024.09.02 [DOCKER] Docker 빌드 시, Multi Stage 사용하기 (0) 2024.08.21 다음글이 없습니다.이전글이 없습니다.댓글