Docker소개와 개념

이미지와 컨테이너 차이

Docker 입문에서 가장 자주 헷갈리는 이미지와 컨테이너의 차이를 정적 청사진과 실행 인스턴스 관점에서 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

text
이미지 = 실행에 필요한 파일과 설정을 담은 청사진
컨테이너 = 이미지를 기반으로 실제 실행 중인 인스턴스

설명

  • 이미지는 읽기 전용 템플릿이며, 애플리케이션 실행에 필요한 파일, 라이브러리, 기본 명령을 포함합니다.
  • 컨테이너는 그 이미지를 바탕으로 실제로 생성되어 실행 중인 인스턴스입니다.
  • 하나의 이미지에서 여러 컨테이너를 만들 수 있다는 점이 핵심입니다.
  • 이미지는 불변성을 전제로 설계되므로, 변경이 필요하면 기존 이미지를 고치는 대신 새 이미지를 다시 빌드합니다.
  • 컨테이너 안에서 생긴 임시 변경은 컨테이너 생명주기와 함께 사라질 수 있으므로, 영속 데이터는 볼륨으로 분리하는 편이 일반적입니다.

짧은 예제

bash
docker pull nginx:alpine
docker run -d --name web1 nginx:alpine
docker run -d --name web2 nginx:alpine

빠른 정리

항목이미지컨테이너
성격정적 청사진실행 중인 인스턴스
변경 방식새로 빌드생성, 시작, 중지, 삭제
개수 관계하나가 여러 컨테이너의 기반이 됨특정 이미지에서 만들어짐
저장 위치로컬 캐시나 레지스트리Docker 엔진이 관리
주된 질문무엇으로 실행할까?지금 무엇이 돌고 있나?

주의할 점

컨테이너 안에서 직접 손으로 수정해 문제를 해결하는 습관은 오래 남기기 어렵습니다. 반복 가능성이 필요한 변경은 결국 Dockerfile과 이미지 빌드 단계로 옮겨야 합니다.

참고 링크

2 sources