이미지의 구조 이해
이미지가 단순한 파일이 아니라, 레이어(layer) 로 구성된 설계도입니다.
image = 읽기 전용 레이어
이미지 실행 후 = 쓰기 전용 레이어 ( image를 제외하고 저장 안하고 종료시 휘발)
Dockerfile의 기본 구조

Dockerfile은 이미지를 “어떻게 만들지”를 정의하는 설계도
각 Dockerfile 명령은 하나의 레이어가 되며, 이 레이어들은 캐시로 재사용된다
Dockerfile 빌드 흐름 이해하기
Dockerfile은 위에서 아래로 순차적으로 실행되며 각 줄마다 결과가 하나의 이미지 레이어로 저장된다.

레이어 설명
레이어 2 환경변수 설정 → 메타데이터 기반
레이어 3 작업디렉토리 설정
레이어 4 부터 파일시스템이 변하는 레이어, info라는 폴더가 생성됨
레이어 5 로컬에 있는 인덱스 파일을 이미지 안으로 복사하는 단계 → 작업 디렉토리 밑에 index.html파일이 복사되어 생성
레이어 6 info.txt를 추가하는 작업 → 파일시스템 변화가 발생하기 때문에 새로운 레이어 생성
레이어 7 이 컨테이너는 기본적으로 80으로 설정할 것이다라는 이미지에 기록하는 역할 → 실제로 오픈하는것은 아님.
레이어 8 cmd 명령어, cmd는 컨테이너가 실행될때 어떤 명령어로 기본으로 실행될건지 정의하는 부분
실습: 나만의 이미지 빌드
새 폴더 생성 및 Dockerfile 작성
↓
로컬에 index.html 생성
↓
이미지 빌드
↓
컨테이너 실행
step1 새폴더 만들기 & dockerfile 작성
mkdir my-nginx
vi Dockerfile
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
index.html vi 편집
vi index.html

Docker 이미지를 빌드
docker build -t my-nginx:v1 .
현재 디렉토리를 기반으로 Docker 이미지를 빌드하고, 이름을 my-nginx:v1로 지정한다

결과 확인
docker run --name mynginx -d -p 8080:80 my-nginx:v1
curl localhost:8080

본 글은 강의 내용을 기반으로 학습한 내용을 정리한 글입니다.
https://skilleat.com/class/?idx=14
Docker Essentials - 감 잡히는 컨테이너 & 도커 : 스킬잇
기술을 가장 쉽고 맛있게 배우는 곳, SkillEat. 클라우드, 쿠버네티스, IT 개념부터 실습까지, 스킬을 맛있게 먹어치우세요!
skilleat.com
'Docker' 카테고리의 다른 글
| 4. Dockerfile Best Practices 8가지 (0) | 2026.04.15 |
|---|---|
| 3-1. [실습] 나만의 유틸리티 이미지 만들기 (Alpine 버전) / no cache관련 (0) | 2026.04.15 |
| 2-3. [실습] 이미지 관리 및 정리 실습 (0) | 2026.04.15 |
| 2-2. [실습] 컨테이너 재활용과 포트 변경 실습 (0) | 2026.04.15 |
| 2-1. [실습] 내손으로 웹페이지 바꿔보기 (0) | 2026.04.15 |