0Pricing
Docker & DevOps Fundamentals · 강의

다단계 빌드와 더 작은 이미지

다단계 Dockerfile로 빌드 도구와 최종 실행 환경을 분리해 가볍고 작은 운영 이미지를 만들고, 이미지 크기를 크게 줄이는 방법을 배워 보세요.

다단계 빌드와 더 작은 이미지은(는) CoddyKit의 무료 Docker & DevOps Fundamentals 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Docker & DevOps Fundamentals 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Docker & DevOps Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

이미지 크기가 중요한 이유

이미지가 크면 빌드하고 푸시하고 가져오는 데 시간이 오래 걸리며, 공격 표면도 넓어집니다. 좋은 엔지니어링 목표는 앱을 실행하는 데 필요한 최소한의 이미지를 제공하는 것입니다.

불필요한 용량 문제

앱을 빌드하려면 컴파일러, 개발 의존성, 빌드 도구가 필요한 경우가 많습니다. 이러한 항목이 최종 이미지에 포함되면 실행 중인 앱에는 필요하지 않더라도 이미지 크기가 크게 늘어납니다.

다단계 빌드란 무엇인가요?

다단계 빌드는 하나의 Dockerfile에서 여러 FROM 문을 사용합니다. 초기 단계에서 앱을 빌드하고, 최종 단계에서는 완성된 산출물만 복사하여 빌드 도구를 제외합니다.

단계 이름 지정하기

AS를 사용하여 단계에 이름을 지정하면 이후 단계에서 해당 단계를 참조할 수 있습니다.

FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci

첫 번째 단계에서 빌드하기

빌드 단계에서는 앱을 컴파일하거나 번들로 묶습니다. 이 단계에서는 모든 개발 의존성과 도구를 사용할 수 있습니다.

COPY . .
RUN npm run build

가벼운 최종 단계

최종 단계는 최소한의 기본 이미지에서 시작한 다음, COPY --from을 사용하여 앱 실행에 필요한 항목만 복사합니다.

FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules

전체 다단계 Dockerfile

각 단계를 결합하면 빌드된 앱은 포함하지만 빌드 도구 모음은 포함하지 않는 작은 최종 이미지가 만들어집니다.

FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
CMD ['node', 'dist/main.js']

작은 기본 이미지 선택하기

기본 이미지는 이미지 크기를 결정하는 가장 큰 요인인 경우가 많습니다. Slim 및 Alpine 변형을 사용하면 이미지 크기를 크게 줄일 수 있습니다.

  • node:20 ~ 큼
  • node:20-slim ~ 훨씬 작음
  • node:20-alpine ~ 가장 작고 라이브러리가 최소한임

운영 환경 전용 의존성

실행 이미지에는 개발 의존성을 포함하지 마세요. 운영 환경 플래그를 사용해 설치하면 테스트 및 빌드 패키지가 제외됩니다.

RUN npm ci --omit=dev

.dockerignore 사용하기

.dockerignore 파일은 불필요한 항목이 빌드 컨텍스트에 포함되지 않게 하여 빌드 속도를 높이고 비밀 정보나 대용량 폴더가 실수로 복사되는 일을 방지합니다.

node_modules
.git
.env
Dockerfile
*.log

결과 측정하기

이미지 크기를 확인하여 작업 결과를 검증하세요. 잘 만든 다단계 이미지는 단순한 단일 단계 이미지의 일부 크기만 될 수 있습니다.

docker images myapp

빠른 확인

다단계 빌드에 대한 지식을 테스트해 보세요.

정리

가벼운 Docker 이미지를 제공하는 방법을 배웠습니다.

  • 다단계 빌드는 하나의 Dockerfile에서 여러 FROM 단계를 사용합니다.
  • 초기 단계에서 빌드한 다음 COPY --from으로 산출물만 가벼운 최종 단계에 복사합니다.
  • 작은 기본 이미지(slim 또는 alpine)를 선택하고 운영 환경 전용 의존성만 설치합니다.
  • .dockerignore를 사용하여 빌드 컨텍스트를 줄입니다.

작은 이미지는 더 빠르게 빌드되고 더 신속하게 배포되며 보안성도 높습니다.

자주 묻는 질문

“다단계 빌드와 더 작은 이미지” 강의는 무료인가요?

네 — “다단계 빌드와 더 작은 이미지” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Docker & DevOps Fundamentals 강의 전체를 잠금 해제할 수 있습니다. Docker & DevOps Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

“다단계 빌드와 더 작은 이미지”에서 뭘 배우나요?

다단계 Dockerfile로 빌드 도구와 최종 실행 환경을 분리해 가볍고 작은 운영 이미지를 만들고, 이미지 크기를 크게 줄이는 방법을 배워 보세요. 브라우저에서 직접 실행하는 실습 코드로 Docker & DevOps Fundamentals을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Docker & DevOps Fundamentals을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Docker & DevOps Fundamentals은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“다단계 빌드와 더 작은 이미지” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Docker & DevOps Fundamentals 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Docker & DevOps Fundamentals 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Dockerfile 이해하기
  2. 사용자 지정 Docker 이미지 생성
  3. 이미지 계층 및 최적화
  4. 다단계 빌드와 더 작은 이미지
← Docker & DevOps Fundamentals(으)로 돌아가기