도커 프로젝트를 진행하면서 관련된 단어 정리를 해보려 한다.
이미지? 컨테이너? 볼륨? 다양한 용어들이 한꺼번에 쏟아져서 어렵게 느껴졌지만 막상 두들겨보니 일상에서 익숙한 예시를 찾게되어 알기 쉽게 정리해 보았다.
도커란?
도커는 ‘애플리케이션을 실행하는 데 필요한 것을 한 번에 담아 어디서든 똑같이 실행할 수 있게 해주는 기술’
도커 이미지(Image) = 🍱 밀키트
도커 이미지는 애플리케이션 실행에 필요한 모든 것을 담아놓은 설계도 + 재료 세트
밀키트
- 레시피
- 손질된 재료
- 양념
- 조리 순서
도커 이미지
- OS 기반 환경
- 라이브러리
- 실행 파일
- 설정 값
밀키트는 아직 요리된 상태가 아니고,
도커 이미지도 아직 실행된 상태가 아니다.
컨테이너(Container) = 🍳 실제로 조리된 요리
컨테이너(Container)는 도커 이미지를 실제로 실행한 실체
- (밀키트)를 (요리)하면 (조리된 음식) = (도커 이미지)를 (실행)하면 (컨테이너)
이미지는 여러 개 있을 수 있지만,
컨테이너는 실행되는 순간 만들어진다.
이미지 (밀키트) → 실행 → 컨테이너 (완성된 요리)
컨테이너는 시작할 수 있고 멈출 수 있고 삭제할 수 있다는 특징을 갖는다.
Dockerfile = 📄 레시피
Dockerfile은 이미지를 만들기 위한 설명서
요리 레시피
- 어떤 재료를 쓰고
- 어떤 순서로 만들고
- 마지막에 어떻게 완성할지
Dockerfile
- 어떤 OS를 쓸지
- 어떤 프로그램을 설치할지
- 어떤 명령어로 실행할지
Dockerfile 하나로 누가 어디서 만들든 똑같은 이미지를 만들 수 있다.
볼륨(Volume) = 🧊 냉장고
볼륨(Volume)은 컨테이너가 삭제돼도 데이터를 보존하기 위한 공간
요리하다가 냉장고에 재료 보관
- 냄비(컨테이너)는 버려도
- 냉장고(볼륨)는 그대로 유지
도커
- 컨테이너 삭제 ≠ 데이터 삭제
- 볼륨에 저장된 데이터는 유지
DB, 로그, 업로드 파일은 반드시 볼륨 사용이 기본 원칙이다.
포트(Port) = 🚪 가게 출입문
컨테이너는 내부에서만 실행되기 때문에 외부에서 접근하려면 포트 연결이 필요
- 요리만 해서는 손님이 들어올 수 없음
- 문(포트)을 오픈해야지 손님이 들어올 수 있음
Docker Compose = 📋 단체 주문서
Docker Compose는 여러 컨테이너를 한 번에 정의하고 실행하는 도구
단체 주문서
- 고기 10인분
- 찌개 3개
- 맥주 5병
docker-compose.yml
- 웹 서버
- DB
- 캐시 서버
- 포트, 볼륨, 네트워크 설정
docker-compose up -d 한 줄이면 주문서(docker-compose.yml)에 작성된 전체 서비스가 한 번에 실행된다.
핵심
- 이미지 ≠ 컨테이너
- 데이터는 컨테이너에 두지 말고 볼륨에 저장
- 설정은 코드로 관리 (Dockerfile, Compose)
- 컨테이너는 가볍고 빠르게 생성/삭제 가능
마무리
도커를 밀키트 → 요리 개념으로 이해하면 훨씬 쉬워진다.
- 이미지 = 밀키트
- 컨테이너 = 완성된 요리
- 볼륨 = 냉장고
- 포트 = 출입문

'Dev > CS' 카테고리의 다른 글
| 🐳 도커(Docker) 프록시 네트워크 설정 (0) | 2026.01.21 |
|---|---|
| [CS] 해싱과 암호화의 차이점 (2) | 2025.03.17 |
| [CS] Base62 vs Base64 비교 및 용도별 적합성 (0) | 2025.03.12 |
| [DNS] MX 레코드 확인 방법 (0) | 2025.02.10 |
| DKIM과 DMARC 이란? (0) | 2025.01.02 |