Docker이미지와 빌드

Dockerfile 기본

FROM, WORKDIR, COPY, RUN, CMD 같은 핵심 지시어를 기준으로 Dockerfile이 이미지를 만드는 방식을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

dockerfile
FROM node:22-alpine
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
CMD ["npm", "start"]

설명

  • Dockerfile은 이미지를 만드는 절차를 선언적으로 적는 텍스트 파일입니다.
  • FROM은 시작 베이스 이미지를 정하고, WORKDIR은 이후 명령의 기본 작업 디렉터리를 고정합니다.
  • COPY는 필요한 파일을 이미지에 넣고, RUN은 빌드 시점 명령을 실행해 의존성 설치 같은 작업을 수행합니다.
  • CMD는 컨테이너가 기본적으로 실행할 명령을 지정하며, docker run 시 다른 명령으로 덮어쓸 수도 있습니다.
  • 좋은 Dockerfile은 "작게, 반복 가능하게, 캐시가 잘 먹게" 쓰는 것이 핵심입니다.

짧은 예제

dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY src ./src
CMD ["python", "-m", "src.main"]

빠른 정리

지시어역할
FROM베이스 이미지 선택
WORKDIR작업 디렉터리 지정
COPY파일 복사
RUN빌드 시 명령 실행
CMD컨테이너 기본 실행 명령

주의할 점

Dockerfile은 단순 셸 스크립트가 아닙니다. 빌드 캐시와 레이어 구조에 영향을 주므로, 파일 복사 순서와 의존성 설치 순서까지 함께 설계해야 합니다.

참고 링크

2 sources