Dev/CS

🐳 도커(Docker) 기본 개념과 용어 정리

싹다배워 2026. 1. 20. 23:09
반응형

도커 프로젝트를 진행하면서 관련된 단어 정리를 해보려 한다.

이미지? 컨테이너? 볼륨? 다양한 용어들이 한꺼번에 쏟아져서 어렵게 느껴졌지만 막상 두들겨보니 일상에서 익숙한 예시를 찾게되어 알기 쉽게 정리해 보았다.


도커란?

도커는 ‘애플리케이션을 실행하는 데 필요한 것을 한 번에 담아 어디서든 똑같이 실행할 수 있게 해주는 기술’


도커 이미지(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)
  • 컨테이너는 가볍고 빠르게 생성/삭제 가능

마무리

도커를 밀키트 → 요리 개념으로 이해하면 훨씬 쉬워진다.

  • 이미지 = 밀키트
  • 컨테이너 = 완성된 요리
  • 볼륨 = 냉장고
  • 포트 = 출입문

반응형