Docker 실무 가이드 · Part 3

Dockerfile로 이미지 만들기

서버 설치 절차를 코드로 남기고 재사용 가능한 이미지로 만드는 Dockerfile 실무 기준

작성 기준2026년 7월

이 파트에서 다루는 내용

Dockerfile 구조이미지 빌드레이어와 캐시비밀정보와 빌드 컨텍스트
01

Dockerfile은 서버 설치 절차를 코드로 남깁니다

Dockerfile은 어떤 기본 이미지에서 시작해 어떤 파일을 복사하고, 어떤 명령을 실행해, 최종적으로 무엇을 띄울지 적는 문서입니다.

잘 만든 Dockerfile은 신규 개발자가 로컬 환경을 맞추는 시간을 줄이고, CI와 배포 환경에서도 같은 절차를 반복하게 해줍니다.

FROM
기본 이미지

Node, nginx, postgres 같은 출발점을 정합니다.

WORKDIR
작업 위치

이후 COPY, RUN, CMD가 실행될 기본 폴더를 정합니다.

COPY
파일 복사

로컬 빌드 컨텍스트의 파일을 이미지 안으로 넣습니다.

RUN
빌드 중 실행

패키지 설치, 빌드처럼 이미지 생성 과정에서 필요한 명령을 실행합니다.

CMD
실행 기본값

컨테이너가 시작될 때 기본으로 실행할 명령을 지정합니다.

02

레이어와 캐시는 빌드 속도와 이미지 크기를 좌우합니다

  • Dockerfile의 각 주요 명령은 이미지 레이어를 만듭니다.
  • 자주 바뀌지 않는 의존성 설치 단계는 앞쪽에 두면 캐시를 더 잘 활용할 수 있습니다.
  • 소스 전체를 먼저 복사한 뒤 패키지 설치를 하면 작은 코드 변경에도 의존성 설치 캐시가 깨질 수 있습니다.
  • 빌드에 필요 없는 로그, 임시 파일, node_modules는 .dockerignore로 제외합니다.
docker build -t work-note:dev .현재 폴더를 빌드 컨텍스트로 이미지 생성
docker image ls로컬 이미지 목록 확인
docker history work-note:dev이미지 레이어와 크기 흐름 확인
03

이미지 안에 넣으면 안 되는 것을 구분합니다

  • API 키, 비밀번호, 개인 인증서 같은 비밀정보는 이미지에 굽지 않습니다.
  • .env 파일을 COPY하면 레지스트리와 캐시에 비밀정보가 남을 수 있습니다.
  • 운영 설정은 환경변수, 시크릿 저장소, 배포 플랫폼 설정으로 주입하는 것이 기본입니다.
  • 이미지는 누구나 다시 내려받을 수 있는 배포 산출물이라는 전제로 다룹니다.
보안 기준

Dockerfile은 설치 스크립트이자 배포 기록입니다. 한 번 이미지에 들어간 비밀정보는 지웠다고 끝나지 않을 수 있습니다.

체크

이 파트 완료 기준