자바칩

[Docker] 이미지 / 컨테이너 / 도커 용어 개념 정리 본문

Study

[Docker] 이미지 / 컨테이너 / 도커 용어 개념 정리

아기제이 2025. 4. 18. 17:29
728x90

🧱 기본 용어 차이 정리

용어 설명 비유
Docker 컨테이너 기술을 제공하는 플랫폼
이미지를 빌드하고, 컨테이너를 실행함
주방, 조리 도구 전체
이미지 (Image) 실행 가능한 애플리케이션을 패키징한 템플릿
(코드 + 환경 + 설정 포함)
요리법, 레시피
컨테이너 (Container) 이미지로부터 실행된 실제 인스턴스
이미지 기반으로 메모리 위에 떠 있는 프로세스
실제로 만들어진 요리

🔍 상세 예시로 이해해보기

🍳 1. 이미지 (Image)

  • 도커 이미지 = 애플리케이션을 실행하기 위한 모든 요소(코드, 라이브러리, 환경 등)를 포함한 불변 템플릿
  • 예: python:3.11, nginx:latest, login-server:v20250418.3.6.20

📦 "이미지"는 실행되지 않는 정적 파일. docker build 로 만들고, docker pull로 받아옴.


🧊 2. 컨테이너 (Container)

  • 이미지를 기반으로 실제로 실행 중인 상태 (또는 중지된 상태)
  • 각 컨테이너는 고유한 이름(ID)을 가짐, 실행 시 변경된 데이터는 컨테이너에만 존재
  • 예: docker run으로 이미지 실행하면 컨테이너 생성됨

🍲 이미지로부터 만들어진 실행 중인 요리. 컨테이너는 생명 주기가 있음 (start, stop, restart, rm 등)


⚙️ 3. Docker

  • 이미지를 만들고 컨테이너를 실행하기 위한 도구이자 플랫폼
  • docker build, docker run, docker ps, docker-compose 등 모두 Docker 명령어

📌 간단 요약

구분 이미지 (Image) 컨테이너 (Container)
상태 정적 (변경 불가) 동적 (실행되고 변경 가능)
생성 방법 docker build, docker pull docker run, docker-compose up
사용 목적 실행 템플릿 애플리케이션 실행 인스턴스
저장 위치 로컬 디스크 (또는 레지스트리) 메모리 및 컨테이너 스토리지
수정 가능 여부 ❌ 수정 불가 (새 이미지로 빌드해야 함) ✅ 가능하지만 일시적

✅ 실무 팁

  • 이미지를 바꾸려면 새로 build 하고 push 해야 함 (버전 관리 필수)
  • 컨테이너를 바꾸려면 docker-compose down && up 으로 재실행
  • 컨테이너에서 수정한 내용은 재시작하면 사라짐 → 반드시 이미지로 반영