카테고리 없음

컨테이너와 이미지 차이?

쑨토리 2025. 2. 21. 17:48

조금 더 쉽게 풀어 쓰고, 초보자도 이해하기 쉽게 설명을 보강해볼게요.


컨테이너(Container)와 이미지(Image)의 차이

컨테이너 기술을 처음 접하면 이미지와 컨테이너의 차이가 헷갈릴 수 있습니다.
쉽게 말하면, 이미지는 컨테이너의 설계도이고, 컨테이너는 그 설계도를 기반으로 실행된 실제 애플리케이션입니다.


1️⃣ 이미지 (Image)란?

컨테이너를 실행하기 위한 템플릿
✅ 애플리케이션 코드, 라이브러리, 종속성 등이 포함된 불변(immutable) 파일 시스템
✅ 컨테이너 실행 전 상태 → 정적인 상태
✅ Docker Hub, AWS ECR 등 이미지 레지스트리에 저장 가능

💡 이미지 예시

이미지는 가상 머신의 ISO 파일 또는 VM 템플릿과 비슷합니다.
즉, 설치 파일을 다운로드하고 실행해야 실제 OS가 동작하는 것처럼, 이미지를 실행해야 컨테이너가 실행됨.


2️⃣ 컨테이너 (Container)란?

이미지를 기반으로 실행되는 실행 환경
✅ 실행 중인 프로세스로, 필요한 CPU, 메모리 등 리소스를 할당받아 동작
✅ 여러 개의 컨테이너가 동일한 이미지를 기반으로 실행 가능
✅ 컨테이너 내부에서 변경이 발생해도 원본 이미지에는 영향을 주지 않음

💡 컨테이너 예시

ISO 파일을 이용해 부팅하면 가상 머신이 실행되는 것처럼, 이미지를 실행하면 컨테이너가 동작합니다.


3️⃣ 이미지와 컨테이너 비교

구분 이미지 (Image) 컨테이너 (Container)

설명 컨테이너 실행을 위한 설계도 이미지를 기반으로 실행된 환경
변경 가능 여부 불변(Immutable) 실행 중 변경 가능
상태 정적 (변하지 않음) 동적 (실행 중)
저장 위치 Docker Hub, ECR 등 실행 중인 호스트에서 동작
예제 OS ISO 파일, VM 템플릿 부팅된 가상 머신 (VM)

4️⃣ 정리하면?

🚀 이미지 = 실행 가능한 컨테이너의 설계도
🚀 컨테이너 = 이미지를 기반으로 실행된 애플리케이션

👉 예제

# 이미지 다운로드
docker pull nginx

# 이미지 목록 확인
docker images

# 이미지 기반으로 컨테이너 실행
docker run -d --name my-nginx -p 8080:80 nginx

# 실행 중인 컨테이너 확인
docker ps

이제 nginx 이미지를 기반으로 my-nginx 컨테이너가 실행된 것을 확인할 수 있습니다.
이 컨테이너를 삭제해도 원본 nginx 이미지는 그대로 남아 있습니다.

📌 컨테이너는 실행될 때 동적이며, 여러 개의 컨테이너가 같은 이미지를 공유할 수 있습니다!