자바칩
[Docker] 이미지 / 컨테이너 / 도커 용어 개념 정리 본문
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 으로 재실행
- 컨테이너에서 수정한 내용은 재시작하면 사라짐 → 반드시 이미지로 반영
'Study' 카테고리의 다른 글
FastAPI vs Spring Boot (1) | 2025.04.15 |
---|---|
비동기(Asynchronous) vs 멀티스레드(Multi-threading) (0) | 2025.04.15 |
[Spring] Spring Boot에서 동시성 처리 방법 (0) | 2025.04.15 |
[FastAPI] async + await 구조가 동시성에 강한 이유 (0) | 2025.04.15 |
RDBMS 용어와 NoSQL 용어 비교 (0) | 2025.04.02 |